Вы устали от необходимости вручную проверять и пропускать существующие файлы при копировании в командной строке Linux? Ну, не волнуйтесь больше! В этой статье блога мы рассмотрим различные способы облегчить вашу жизнь с помощью команды «cp». Мы углубимся в разговорные объяснения и предоставим примеры кода, которые помогут вам понять каждый метод. Итак, начнём!
Метод 1: использование параметра «-n» или «–no-clobber».
Самый простой способ пропустить существующие файлы во время операции копирования — использовать параметр «-n» или «–no-clobber».. Эта опция предотвращает перезапись существующих файлов и копирует только те файлы, которые еще не существуют в целевом каталоге. Вот пример:
$ cp -n source.txt destination/
Метод 2: использование опции «-u» или «–update».
Опция «-u» или «–update» позволяет копировать только те файлы, которые новее соответствующих файлов в целевом каталоге.. Он пропускает файлы с одинаковыми или более старыми временными метками. Посмотрите этот пример:
$ cp -u source.txt destination/
Метод 3: совместное использование параметров «-u» и «-n».
Вы можете комбинировать параметры «-u» и «-n», чтобы пропускать существующие файлы и копировать только те, которые более новые. Таким образом, вы избежите перезаписи файлов с одинаковой меткой времени. Вот как это выглядит:
$ cp -un source.txt destination/
Метод 4: использование опции «–skip»
Некоторые версии команды «cp» поддерживают опцию «–skip», которая позволяет пропускать существующие файлы во время операции копирования. Эта опция доступна не во всех дистрибутивах, поэтому обязательно проверьте, поддерживает ли ее ваша система. Вот пример:
$ cp --skip=existing source.txt destination/
Метод 5: использование опции «-i» или «–interactive».
Параметр «-i» или «–interactive» выводит запрос перед перезаписью существующих файлов. Это дает вам возможность выбрать, хотите ли вы пропустить, перезаписать или переименовать файл. Вот пример:
$ cp -i source.txt destination/
Метод 6: совместное использование параметров «-u» и «-i».
Объединение параметров «-u» и «-i» позволяет копировать только самые новые файлы и запрашивать подтверждение перед перезаписью. существующие файлы. Этот метод дает вам контроль над процессом копирования. Посмотрите этот пример:
$ cp -ui source.txt destination/
Метод 7: написание собственного сценария оболочки
Если у вас более сложные требования или вы хотите автоматизировать пропуск существующих файлов, вы можете написать собственный сценарий оболочки. Этот сценарий может использовать условные выражения и циклы для проверки существующих файлов и соответственно их пропуска. Вот простой пример:
#!/bin/bash
for file in source/*; do
if [ -f "$file" ]; then
if [ ! -e "destination/$(basename "$file")" ]; then
cp "$file" destination/
else
echo "Skipping existing file: $(basename "$file")"
fi
fi
done
Сохраните скрипт в файл (например, custom_cp.sh) и сделайте его исполняемым:
$ chmod +x custom_cp.sh
Затем запустите:
$ ./custom_cp.sh
Это лишь некоторые из методов, которые можно использовать для пропуска существующих файлов при использовании команды «cp». Выберите тот, который лучше всего соответствует вашим потребностям, и начните экономить время и силы при выполнении задач по управлению файлами.