/var/www/
目录中有一个链接到WordPress的符号链接。当我从ls -la
目录运行命令/var/www/
时,没有显示到WordPress的链接。有没有办法列出目录中的所有符号链接?#1 楼
您可以将grep
与ls
命令一起使用以列出当前目录中存在的所有符号链接。这将列出当前目录中存在的所有链接。
ls -la /var/www/ | grep "\->"
评论
如果您的文件包含“->”,它将返回假阳性。尝试简单的触摸“ foo->”
–西尔万·皮诺(Sylvain Pineau)
2014年9月9日18:32
为什么不与^ l格格不入?
–伊莱兰·马尔卡(Eliran Malka)
17年1月18日在12:13
与往常一样,最好的答案是+
– FractalSpace
17年12月10日在19:19
真好! →.bash_alias:别名listlinks ='ls -l --color | grep“ \->”'8-)
–弗兰克·诺克(Frank Nocke)
18年4月11日在3:08
将-R传递给ls以获得递归列表。
– Itachi
18年4月27日在7:10
#2 楼
解析ls
是一个BadIdea®,在这种情况下,首选简单的find
:find . -type l -ls
仅处理当前目录:
find . -maxdepth 1 -type l -ls
信用:如何使Shell识别由`ls -A`命令返回的文件名,并且这些名称包含空格?
评论
@ahnbizcad:不是1(一个),而是l(链接)
–西尔万·皮诺(Sylvain Pineau)
15年5月28日在17:51
好答案!我调整了我的位置,使其不会下降到这样的目录路径:find / <您的目录> -maxdepth 1 -type l -ls 2> / dev / null谢谢!
–bgs
16-2-4在18:47
仅针对当前目录(即非递归目录)添加-maxdepth 1。
–约书亚·品特(Joshua Pinter)
16年4月8日在14:32
@ cig0您不需要使用awk,您可能只需要这样:find。 -maxdepth 1型l |排序-n
– sobi3ch
19年6月28日在15:43
来自人的@GabrielStaples发现:-ls True;在标准输出上以ls -dils格式列出当前文件。在/ etc中查看./os-release-> ../usr/lib/os-release有用,而不仅仅是./os-release
–西尔万·皮诺(Sylvain Pineau)
20-2-13在9:11
#3 楼
grep
是您的朋友:ls -lhaF | grep ^l # list links
ls -lhaF | grep ^d # list directories
ls -lhaF | grep ^- # list files
这将列出以“ l”开头的行,这些行表示perms列中的链接,而不是
l
,目录使用d
,文件使用-
评论
只是不要以编程方式对此方法做任何事情,因为恶意文件名最终可能会注入shell代码。为安全起见,应将find命令与-exec一起使用,并且如果要通过管道传递到xargs,则将find的空字符分隔符输出标志与xargs的空字符分隔符输入标志结合使用。
– ErikE
19/12/19在15:24
#4 楼
POSIXly:find ! -name . -prune -type l
评论
你能解释一下!在这种情况下?
– Mtl Dev
20年1月14日在15:42
@MtlDev!否定条件匹配,这里! -名称 。表示匹配当前目录以外的所有内容。
–cuonglm
20 Jan 15'4:49
#5 楼
这将返回目录中的所有符号链接项目(包括dirs和fns):find . -maxdepth 1 -type l -print | cut -c3- | grep -v "\#"
但是,为了区分实际的符号链接项目类型:
ls -lhaF | grep ^l | grep -v "\#" | cut -c42- | grep -v "/" | cut -d' ' -f1
仅返回符号链接的文件名项目。并且,
ls -lhaF | grep ^l | grep -v "\#" | cut -c42- | grep "/" | cut -d' ' -f1
仅返回符号链接的目录名项目。
#6 楼
要查看目录中的符号链接:打开终端并移至该目录。
键入命令:
ls -la
即使在隐藏的目录下,也应列出所有文件。
以
l
开头的文件是您的符号链接文件。评论
-1:KasiyA的答案已经涵盖了这一点。
–muru
2014年9月10日下午5:45
这也列出了非香料。更好的解决方案可以回答已经发布的问题。
– RichieHH
20-10-14在5:09
#7 楼
键入ls -lai
,它将列出所有具有相应inode编号的文件和子目录。您知道具有相同inode编号的文件是链接(硬链接或软链接),并且该解决方案也适用于符号链接。评论
ls -lai对于文件及其符号链接没有显示相同的inode编号。与硬链接不同,符号链接具有自己的独立inode条目。这就是它的样子。
– Eliah Kagan
2014-09-12 6:19
#8 楼
也可以使用python完成:$ python -c "import os,sys; print '\n'.join([os.path.join(sys.argv[1],i) for i in os.listdir(sys.argv[1]) if os.path.islink(os.path.join(sys.argv[1],i))])" /path/to/dir
样本运行:
$ python -c "import os,sys; print '\n'.join([os.path.join(sys.argv[1],i) for i in os.listdir(sys.argv[1]) if os.path.islink(os.path.join(sys.argv[1],i))])" /etc
/etc/vtrgb
/etc/printcap
/etc/resolv.conf
/etc/os-release
/etc/mtab
/etc/localtime
这可以扩展为可以通过
os.walk
函数进行递归,但是使用简单的列表生成就足以在单个目录中列出链接,如上所示。评论
基本的shell命令已经可以执行此操作时,可以避免复杂化。
– RichieHH
20-10-14在5:10
评论
如何查找和列出为特定文件创建的所有符号链接的可能重复项?