В sed -h
имеют:
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
и «выполнить операцию над самим файлом». абсолютное это.
И человек
сказал: «Sed - это редактор потока. Редактор потока используется для выполнения основных преобразований текста
во входном потоке (файл или входные данные из конвейера). '
в качестве вашего вопроса
sed -i '1d' file_name
означает: удалить первая строка в файле «имя_файла»
на месте и резервное копирование в файл.
(точно так же, как редактировать файл и удалять первую строку напрямую.)
Думаю, здесь лучше использовать find
:
for FILE in $DIR
do
find $DIR -iname '*.txt' -exec cp -fv {} ${DIR}/backup/${FILE} \;
done
Вы можете добавить опцию --parents
к cp
, если хотите сохранить структуру каталогов.
Если вы просто хотите скопировать /home/users/data
в/home/users/data/backup
:
rsync -ai --exclude=/backup/ /home/users/data/ /home/users/data/backup
Это также исключает копирование самого каталога backup
при повторном запуске команды. Обратите внимание, что исходный каталог (и каталог в шаблоне исключения )должны иметь косую черту в конце.