14

希望有人可以帮助解决这个问题:

我正在尝试使用以下命令删除 /tmp 上的会话文件:

find /tmp -name 'sess_*' -user Username -maxdepth 1 $CMD {} \;

但我得到了这些错误:

查找:警告:您在非选项参数 -name 之后指定了 -maxdepth 选项,但选项不是位置性的(-maxdepth 影响在它之前指定的测试以及在它之后指定的测试)。请在其他参数之前指定选项。

find: paths must precede expression Usage: find [-H] [-L] [-P] [path...] [expression]

我在网上寻找解决方案,但找不到任何解决方案。我用其他命令删除了其他 tmp 文件,想知道这是否影响了某些卷或套接字。

先感谢您

4

1 回答 1

26

find具有三种类型的选项:用于匹配文件的选项(例如-name, -user)、指定对匹配文件执行的操作的选项(-print-exec)以及控制命令整体行为的选项(例如-maxdepth, -xdev)。第三种必须放在其他两种之前。所以应该是:

find /tmp -maxdepth 1 -name 'sess_*' -user Username -exec $CMD {} \;
于 2012-09-16T01:31:49.560 回答