我正在尝试复制仅对所有者具有读写权限的文件,然后将该文件重定向到名为的目录$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
即使你修正了命令替换,梅勒比乌斯写道,所有命令都不会运行,因为它们都不正确。
您可以使用以下find
命令来实现您想要的:
find ~ -type f -perm 600 -exec cp {} $dirA \;
注意,上述命令会递归搜索你的主目录中有 600
权限的文件。如果你想将搜索范围限制在主目录中的文件,你可以-maxdepth 1
在 前添加参数-type f
。
答案2
您使用的语法错误命令替换. 使用$( )
而不是( )
或`
而不是'
。
cp $(ls -l ~| grep -type f-perm 600) $dirA
或者
cp -R `ls -l ~ | grep ^.-rw-/---/---` $dirA
笔记:
- 我不保证你的命令不会再出现错误。
- 使用反引号 ( ) 的命令替换
`
已被弃用。