Как скопировать файлы с определенными разрешениями в каталог

Я пытаюсь сделать копию файлов с разрешениями на чтение и запись только для владельца, а затем перенаправить этот файл в каталог с именем $dirA. Я пытался использовать эту команду:

cp (ls -l ~| grep -type f-perm 600) $dirA

Я также пытался:

cp -R 'ls -l ~ | grep ^.-rw-/---/---' $dirA

Но я получил эту ошибку:

cp: cannot stat 'ls -l ~ | grep ^.-rw- --- ---': No such file or directory
1
задан 23 September 2020 в 12:59

2 ответа

Вы используете неправильный синтаксис для подстановки команды . Используйте $ () вместо () или ` вместо '.

cp $(ls -l ~| grep -type f-perm 600) $dirA

или

cp -R `ls -l ~ | grep ^.-rw-/---/---` $dirA

Примечания:

1
ответ дан 4 January 2021 в 08:21

Даже если вы исправите подстановку команд, как Мелебиус написал , ни одна из команд не будет запущена, потому что ни одна из них не является правильной.

Вы можете использовать следующее find для достижения желаемого:

find ~ -type f -perm 600 -exec cp {} $dirA \;

Обратите внимание, что указанная выше команда будет рекурсивно искать в вашем домашнем каталоге файлы с разрешениями 600 . Если вы хотите ограничить поиск только файлами в домашнем каталоге, вы можете добавить параметр -maxdepth 1 перед -type f .

6
ответ дан 4 January 2021 в 08:21

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

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