我正在尝试使用以下命令,但它需要运行sudo
才能工作,我该怎么做?
cd /usr/local/bin && \
ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' | awk '{print $9}' | xargs rm
答案 0 :(得分:1)
根据我的经验,sudo cd
会给你带来麻烦。
您可以cd /usr/local/bin
然后运行sudo ls -l ...
OR
由于您指定路径,因此看起来并不真正需要cd
。因此,请忽略cd
命令并在所有地方使用完整路径。
答案 1 :(得分:1)
这是一种可怕的方法,用于删除sizeof
中指向/usr/local/bin
的所有符号链接。
它会解析../Library/Frameworks/Python.framework/Versions/2.7
(请参阅this了解您不想这样做的原因。)
它使用ls
,理论上至少可以捕捉到超出预期的效果。
如果找到的文件名中包含空格,则不安全/无法正常工作。
这项任务也非常复杂。
试试这个:
grep
如果它打印出您期望的事物的名称(将find /usr/local/bin -lname '*/../Library/Frameworks/Python.framework/Versions/2.7*'
添加到结尾以获得-ls
- 样式输出)然后使用
ls -l
删除它们(假设OS X find /usr/local/bin -lname '*/../Library/Frameworks/Python.framework/Versions/2.7/*' -delete
支持find
)。
如果它不使用-delete
或-execdir rm {} \+
或-execdir rm {} \;
或-exec rm {} \+
(按此顺序,直到找到有效的方式)。
使用-exec rm {} \;
或-okdir
代替-ok
和-execdir
会导致-exec
在运行之前打印要运行的命令以进行确认(类似find
将提示删除每个文件。)
然后,您可以根据需要在整个rm -i
命令或sudo
命令中使用find
。