获取文件列表及其绝对路径

get the list of files hirarchically with its absolute path

我想要如下例所示的输出。

root@aklinux139:~/.atom# du -sh */* | awk '{print }'
blob-store/BLOB
blob-store/INVKEYS
blob-store/MAP
compile-cache/less
compile-cache/root
compile-cache/style-manager
packages/README.md
storage/application.json
root@aklinux139:~/.atom# 

但是 ls 没有给出任何 options/arguments 的输出。 'ls -R' 给出路径,然后给出其内容而不是文件名及其绝对路径。

我在写脚本的时候经常需要这个,有人可以帮我吗?提前谢谢堆。

可以使用find,深度为2的例子:

find . -maxdepth 2 -mindepth 2 -printf '%P\n'

如果要排除点文件:

find . -maxdepth 2 -mindepth 2 -not -path '*/\.*' -printf '%P\n'

如果你想对结果进行排序(如du -sh):

find . -maxdepth 2 -mindepth 2 -not -path '*/\.*' -printf '%P\n' | sort

试试这个 -

find / -name "*" |head
/
/var
/var/games
/var/yp
/var/kerberos
/var/kerberos/krb5
/var/kerberos/krb5/user
/var/.updated
/var/nis
/var/account