Копируйте/Перемещайте целую папку, но с определенными расширениями

Я думаю, что в этом случае Вы могли использовать

find ./ -name \*.foo | xargs gedit
2
02.06.2011, 20:27
6 ответов
cd /tmp/backup
find . -name '*.php' | cpio -pmud /home/mysite/public_html
4
27.01.2020, 22:01

На последних версиях удара можно включить globstar (shopt -s globstar), и затем сделайте:

cd /tmp/backup
tar cvf - **/*.php | tar xvf - -C /home/mysite/public_html

** соответствия все файлы, директора и subdirs

Я использую tar здесь, потому что это сохраняет структуру каталогов.

1
27.01.2020, 22:01

С инструментами POSIX используйте мир (замена POSIX к tar и cpio):

cd /tmp/backup
find . -name '*.php' | pax -rw -pp /home/mysite/public_html

С zsh сначала создайте целевые каталоги, затем скопируйте файлы. Вставьте первые две строки Ваш ~/.zshrc.

autoload zmv
alias zcp='zmv -C' zln='zmv -L'
cd /tmp/backup
mkdir -p **/*.php(e\''REPLY=/home/mysite/public_html/${REPLY:h}'\')
zcp '(**/)(*.php)' '/home/mysite/public_html/$1$2'

(Здесь, zsh имеет преимущество перед стандартным методом, потому что zcp не имеет способа создать целевые каталоги по мере необходимости.)

1
27.01.2020, 22:01

Попробуйте это:
cp /tmp/backup/*/*.php /home/mysite/public_html/

0
27.01.2020, 22:01
  • 1
    или уверенный? может любой проверять это –   02.06.2011, 14:44
  • 2
    1, Это не будет работать, потому что он не сохраняет каталоги. Это скопирует все файлы в тот же каталог. –  dogbane 02.06.2011, 14:49
find /tmp/backup/ -name "*.php" | xargs -I % cp % /home/mysite/public_html
-1
27.01.2020, 22:01

обновленный ответ, выполненный ниже команды один после другого. это сохранит структуру каталогов также:

cp /tmp/backup /home/mysite/public_html
find /home/mysite/public_html -not -name "*.php"|xargs rm -rf
-1
27.01.2020, 22:01
  • 1
    я предполагаю u, означает редактирование./tmp/backup/: после попытки Вашей команды это полностью повредило мой сайт, сохранив все файлы в том же directroy –   02.06.2011, 14:36
  • 2
    , если это так, затем, необходимо упомянуть в вопросе ясно, что Вам также нужна та же структура каталогов, чтобы быть copied.the взглядами вопроса, неопределенными для ответа. –   02.06.2011, 14:58
  • 3
    , какого черта-1 для этого ответа? Гриль –   02.06.2011, 15:06
  • 4
    Этот ответ является НЕПРАВИЛЬНЫМ И ОПАСНЫМ. Первая вещь find команда распечатает, /home/mysite/public_html, который rm покорно удалит. Даже если find команда была исправлена для исключения каталогов, любой файл, который не был результатом копии, будет удален, который не находится в требовании. Кроме того, xargs ожидает формат ввода это find не производит, поэтому если существуют какие-либо файлы со специальными символами (пробел или \'") на их имена, xargs передаст непреднамеренные имена к rm, и файлы где угодно в системе могут быть удалены. –  Gilles 'SO- stop being evil' 02.06.2011, 20:43

Теги

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