【发布时间】:2023-04-03 22:55:02
【问题描述】:
编者注:这个问题含糊不清,因为它把两个不相关的任务混为一谈:
(a) 使用-printf 操作打印 仅文件名(没有路径组件),并且
(b) 在-exec 操作的上下文中通过{}
传递单纯的文件名作为参数
(a) 被错误地视为实现 (b) 的一种方式。
这种混淆导致至少有一个答案集中在(a)上。
我正在尝试使用 find 命令列出某个路径中的所有目录,但在输出中隐藏该路径。 -printf "%P\n" 标志应该隐藏 /path/to/directory/,但它不起作用:
find /path/to/directory/* -maxdepth 0 -type d -printf "%P\n" -exec sudo tar -zcpvf {}.tar.gz {} \;
例如,上述命令将使用以下命令创建档案:
/path/to/directory/dir1
/path/to/directory/dir2
/path/to/directory/dir3
我怎样才能修改我的命令来输出这个:
dir1
dir2
dir3
请注意:我知道我可以通过 cd /path/to/directory/ 然后使用 find 命令执行上述操作,但重要的是我避免使用 cd 并使用单个 find 命令完成所有操作。
【问题讨论】:
-
如果某个答案解决了您的问题,请单击旁边的大复选标记 (✓) 接受它。如果您发现其他答案有帮助,请给他们投票。接受和投票有助于未来的读者。请参阅the relevant help-center article。如果您的问题尚未完全得到解答,请提供反馈。