Копирование списка файлов

stat -c %Y <filename>

mira man statpara-c(formato )opciones

0
26.06.2019, 22:30
3 ответа

Если файлы имеют похожие имена, вы можете использовать подстановочный знак, например cp test* ~/test/, чтобы скопировать все файлы, начинающиеся с «test», в каталог ~/test.

Чтобы скопировать видимые (не -точечные )файлы в каталоге, вы можете вместо этого выполнить cp./* ~/test/.

0
28.01.2020, 02:39

Учитывая ваш комментарий к ответу пользователя 79914, похоже, вам придется явно указать файлы, которые вы хотите скопировать, в обычной старой команде cp. Что-то вроде следующего должно выполнить эту работу:

cp FILE_1 FILE_2 FILE_3 /destination/directory

Если, например, вы будете выполнять операцию копирования более одного раза, вы можете сделать что-то вроде следующего:

for FILE in $(cat./list_of_files.txt)
do
    cp ${FILE} /destination/directory
done

В этом примере предполагается, что вы добавили список нужных файлов в текстовый файл list_of_files.txt. Преимущество этого подхода, особенно если вам приходится выполнять копирование более одного раза, заключается в том, что вы можете просто добавить любые новые файлы, которые вам нужно скопировать, в ваш файл list_of_files.txt.

Дополнительные примеры, подобные этому, можно найти по этой ссылке:

https://www.cyberciti.biz/faq/bash-for-loop/

3
28.01.2020, 02:39

Самый простой метод не требует от вас каких-либо навыков написания сценариев. Требуется только текстовый редактор. Конечно, есть более элегантные и более общие способы сделать это, но иногда нужно просто выполнить немедленную задачу, не отходя в сторону от большого количества лазания по кривой обучения и тому подобного, если ваши навыки написания сценариев находятся на уровне новичка.

Предположим, у вас есть файл с именем myfiles.txt, который содержит список всех имен файлов, которые вы хотите скопировать, по одному в строке. Я собираюсь предположить:

  • в вашем списке меньше миллиона файлов
  • каждая строка myfiles.txtсодержит правильный путь и имя исходного файла
  • путь к каталогу, в который вы копируете файлы, testи он уже существует
  • у вас нет проблемных символов в именах файлов, таких как кавычки, апострофы, символы новой строки и тому подобное.

Теперь скажи:

vi myfiles.txt
:s/^/cp -vp '/999999
1G:s-$-' test/-999999
ZZ

Это отредактирует ваш список файлов, чтобы поставить cp -vp 'в начале каждой строки (каждого имени файла )и поставить ' test/в конце каждого имени файла.

Теперь у вас есть список из N cpкоманд, которые скопируют ваши N файлов в каталог test/. Вы можете выполнить его, сказав:

sh < myfiles.txt

Вуаля.

0
28.01.2020, 02:39

Теги

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