Я пытаюсь сделать копию файлов с разрешениями на чтение и запись только для владельца, а затем перенаправить этот файл в каталог с именем $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
Вы используете неправильный синтаксис для подстановки команды . Используйте $ ()
вместо ()
или `
вместо '
.
cp $(ls -l ~| grep -type f-perm 600) $dirA
или
cp -R `ls -l ~ | grep ^.-rw-/---/---` $dirA
Примечания:
`
) устарела. Даже если вы исправите подстановку команд, как Мелебиус написал , ни одна из команд не будет запущена, потому что ни одна из них не является правильной.
Вы можете использовать следующее find
для достижения желаемого:
find ~ -type f -perm 600 -exec cp {} $dirA \;
Обратите внимание, что указанная выше команда будет рекурсивно искать в вашем домашнем каталоге файлы с разрешениями 600
. Если вы хотите ограничить поиск только файлами в домашнем каталоге, вы можете добавить параметр -maxdepth 1
перед -type f
.