需要输出给定目录的每个子目录名称的前 N 个字母。我想使用 ls 命令,但不知道在哪里以及如何写文件的名称
答案1
-printf
该命令的操作接受find
C 样式的%.N
字段宽度规范
find path/to/directory/ -type d -printf '%.5f\n'
(替换5
为您想要的字母数否)。添加-maxdepth 1
以将其限制在直接子目录中。
如果你想要所有文件,那就更简单了。你可以像find
上面一样使用,但删除-type d
,或者使用stat
简单的*
shell glob:
find . -printf "%.5f\n"
stat -c '%.5n' *
如果要使用 shell 变量来设置宽度,则需要更改引号,即
N=5
find . -printf "%.${N}f\n"
或者
N=5
stat -c "%.${N}n" *
如果你有“简单”的文件名,并且只想在终端中使用一些快速而简单的功能,你甚至可以使用
ls | cut -c1-$N