Как скопировать несколько файлов с помощью командной строки?

Проверить дату и время в системной дате в Ubuntu. Предоставьте правильное время и часовой пояс, а затем попробуйте просмотреть https-сайт. Если у вас неправильное время в вашей системе, вы получите сообщение об ошибке Untrusted connection при подключении к сайту, использующему ssl.

3
задан 18 July 2017 в 15:37

9 ответов

Я использовал эту команду:

files=(*); 
num=$((${#files[@]}/8));
k=1
for ((i=0; i<${#files[@]}; i+=$num)); do 
tar cvzf files$k.tgz -- "${files[@]:$i:$num}"
((k++))
done

из этой публикации: Как tar.gz много файлов одинакового размера в несколько архивов с ограничением размера, разделяемым Jacob Vlijm. Он сжимает все файлы в нескольких файлах .tgz, так что это хорошо для меня. Вы можете изменить число, чтобы разделить, здесь 8 дает мне 8 сжатых файлов с 25k-файлами внутри + 1 сжатого файла с 2-мя файлами внутри. Это помогло мне.

1
ответ дан 22 May 2018 в 20:28

Я использовал эту команду:

files=(*); num=$((${#files[@]}/8)); k=1 for ((i=0; i<${#files[@]}; i+=$num)); do tar cvzf files$k.tgz -- "${files[@]:$i:$num}" ((k++)) done

из этой публикации: Как tar.gz много файлов одинакового размера в несколько архивов с ограничением размера, разделяемым Jacob Vlijm. Он сжимает все файлы в нескольких файлах .tgz, так что это хорошо для меня. Вы можете изменить число, чтобы разделить, здесь 8 дает мне 8 сжатых файлов с 25k-файлами внутри + 1 сжатого файла с 2-мя файлами внутри. Это помогло мне.

1
ответ дан 18 July 2018 в 10:09

Я использовал эту команду:

files=(*); num=$((${#files[@]}/8)); k=1 for ((i=0; i<${#files[@]}; i+=$num)); do tar cvzf files$k.tgz -- "${files[@]:$i:$num}" ((k++)) done

из этой публикации: Как tar.gz много файлов одинакового размера в несколько архивов с ограничением размера, разделяемым Jacob Vlijm. Он сжимает все файлы в нескольких файлах .tgz, так что это хорошо для меня. Вы можете изменить число, чтобы разделить, здесь 8 дает мне 8 сжатых файлов с 25k-файлами внутри + 1 сжатого файла с 2-мя файлами внутри. Это помогло мне.

1
ответ дан 24 July 2018 в 19:31

Вы можете использовать команду «find» с xargs и передать команду multi, чтобы сначала прочитать значение из файла и установить его в переменную, которую мы будем использовать в новом имени каталога в качестве идентификатора, а затем создать следующий каталог файлы в него и увеличивать счетчик ID и сохранять его в файле, чтобы сохранить его последнее значение.

вот команда:

find -maxdepth 1 -type f |xargs -n25000 bash -c 'readID=$(< ../ID.txt); echo mkdir directory_$readID; echo mv -v $@ -t directory_$readID/; echo $(expr ${readID} + 1)> ../ID.txt'

P.s. обратите внимание, что перед выполнением вышеуказанной команды

echo "1" > ../ID.txt

этот ID.txt на один уровень выше, чем текущий рабочий каталог, напишите начальный идентификатор в файле ID.txt.

после того, как вы проверили команду и увидели, что произойдет, затем удалите команду «echo» из этой команды «echo mv -v $@ -t directory_$readID/;» и «mkdir» для выполнения фактического перемещения и сбросьте идентификатор. txt

echo "1" > ../ID.txt
0
ответ дан 22 May 2018 в 20:28

Вы можете делить дерево каталогов, «расколоть» его и «кота» обратно.

Это может помочь. Не проверены команды, но я помню, как это работает, начиная с 400 лет назад.

https://unix.stackexchange.com/questions/1588/break-a-large-file-into-smaller-pieces

0
ответ дан 22 May 2018 в 20:28

Вы можете делить дерево каталогов, «расколоть» его и «кота» обратно.

Это может помочь. Не проверены команды, но я помню, как это работает, начиная с 400 лет назад.

https://unix.stackexchange.com/questions/1588/break-a-large-file-into-smaller-pieces

0
ответ дан 18 July 2018 в 10:09

Вы можете использовать команду «find» с xargs и передать команду multi, чтобы сначала прочитать значение из файла и установить его в переменную, которую мы будем использовать в новом имени каталога в качестве идентификатора, а затем создать следующий каталог файлы в него и увеличивать счетчик ID и сохранять его в файле, чтобы сохранить его последнее значение.

вот команда:

find -maxdepth 1 -type f |xargs -n25000 bash -c 'readID=$(< ../ID.txt); echo mkdir directory_$readID; echo mv -v $@ -t directory_$readID/; echo $(expr ${readID} + 1)> ../ID.txt'

P.s. обратите внимание, что перед выполнением вышеуказанной команды

echo "1" > ../ID.txt

этот ID.txt на один уровень выше, чем текущий рабочий каталог, напишите начальный идентификатор в файле ID.txt.

после того, как вы проверили команду и увидели, что произойдет, затем удалите команду «echo» из этой команды «echo mv -v $@ -t directory_$readID/;» и «mkdir» для выполнения фактического перемещения и сбросьте идентификатор. txt

echo "1" > ../ID.txt
0
ответ дан 18 July 2018 в 10:09

Вы можете делить дерево каталогов, «расколоть» его и «кота» обратно.

Это может помочь. Не проверены команды, но я помню, как это работает, начиная с 400 лет назад.

https://unix.stackexchange.com/questions/1588/break-a-large-file-into-smaller-pieces

0
ответ дан 24 July 2018 в 19:31

Вы можете использовать команду «find» с xargs и передать команду multi, чтобы сначала прочитать значение из файла и установить его в переменную, которую мы будем использовать в новом имени каталога в качестве идентификатора, а затем создать следующий каталог файлы в него и увеличивать счетчик ID и сохранять его в файле, чтобы сохранить его последнее значение.

вот команда:

find -maxdepth 1 -type f |xargs -n25000 bash -c 'readID=$(< ../ID.txt); echo mkdir directory_$readID; echo mv -v $@ -t directory_$readID/; echo $(expr ${readID} + 1)> ../ID.txt'

P.s. обратите внимание, что перед выполнением вышеуказанной команды

echo "1" > ../ID.txt

этот ID.txt на один уровень выше, чем текущий рабочий каталог, напишите начальный идентификатор в файле ID.txt.

после того, как вы проверили команду и увидели, что произойдет, затем удалите команду «echo» из этой команды «echo mv -v $@ -t directory_$readID/;» и «mkdir» для выполнения фактического перемещения и сбросьте идентификатор. txt

echo "1" > ../ID.txt
0
ответ дан 24 July 2018 в 19:31

Другие вопросы по тегам:

Похожие вопросы: