运行以下命令时,它会为我permission denied
提供所有文件的消息。
find /data/code/ -name "*.jar" -exec {} ls \;
find: `/data/code/project/shared/build/thirdparty/log4j-1.2.8/commons-logging-1.0.4.jar': Permission denied
Run Code Online (Sandbox Code Playgroud)
但如果我这样做
ls /data/code/project/shared/build/thirdparty/log4j-1.2.8/commons-logging-1.0.4.jar
Run Code Online (Sandbox Code Playgroud)
它打印给出了正确的输出,没有任何permission denied
消息。
/data/code/project/shared/build/thirdparty/log4j-1.2.8/commons-logging-1.0.4.jar
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
ps:我需要列出并删除所有的jar文件 /data/code
做的时候:
find /data/code/ -name "*.jar" -exec {} ls \;
Run Code Online (Sandbox Code Playgroud)
您正在尝试将找到的文件(例如/data/code/project/shared/build/thirdparty/log4j-1.2.8/commons-logging-1.0.4.jar
)ls
作为参数执行,导致权限被拒绝错误。
只需切换顺序:
find /data/code/ -name "*.jar" -exec ls {} \;
Run Code Online (Sandbox Code Playgroud)
GNUfind
也有-ls
选择,所以在 GNU 中find
,你可以这样做:
find /data/code/ -name "*.jar" -ls
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4534 次 |
最近记录: |