想象一下,您正在系统上工作,有人意外删除了
ls
命令 (/bin/ls
)。如何获取当前目录中的文件列表?尝试一下。
我尝试了很多方法,也在网上搜索过,但没有任何结果。我想问除了ls
命令之外,我们还可以使用什么命令来列出所有文件。
答案1
echo *
...将通过 Bourne 兼容 shell 上的文件通配显示当前文件夹中的文件。
这列出了下一级的所有文件:
echo */*
在 Bash 中,如果设置了 globstar(用 来设置shopt -s globstar
,用 来取消设置shopt -u globstar
),这将递归地列出所有文件:
echo **
答案2
find -maxdepth 1
find -maxdepth 1 -ls
较少的 TAB TAB
发现 -ls 开关独立于 /bin/ls 并且有自己的格式,并显示详细信息:
127432 0 drwxr-xr-x 2 stefan stefan 48 Apr 8 22:51 ./temp/falsch/.hiddenfalsch
127447 0 lrwxrwxrwx 1 stefan stefan 9 Apr 8 22:51 ./temp/falsch/linkfalsch -> subfalsch
127427 0 drwxr-xr-x 2 stefan stefan 48 Apr 8 22:51 ./temp/.hiddenmusik
另一个细节显示了可能性,是stat
stat *
File: `halx0o'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 807h/2055d Inode: 102701 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ stefan) Gid: ( 1000/ stefan)
Access: 2011-04-08 22:38:18.000000000 +0200
Modify: 2009-07-23 03:16:15.000000000 +0200
Change: 2011-04-09 23:29:13.000000000 +0200
File: `ho ho ho'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 807h/2055d Inode: 115835 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ stefan) Gid: ( 1000/ stefan)
Access: 2011-04-08 22:38:18.000000000 +0200
Modify: 2010-07-24 14:12:48.000000000 +0200
Change: 2011-04-09 23:29:13.000000000 +0200
答案3
为了让它看起来像ls
,我会使用 Bash 的for
循环:
for i in *; do echo $i; done
如果这不起作用,我会尝试 Python ;)
:
python -c "import glob; print '\n'.join(glob.glob('/home/*'))"
答案4
find .
尽管您可能希望输入所需的任何限制参数。