/home/ggicci/mydir
|+ dir_1
|+ dir_2
|- file_1.txt
|- link_1
|- link_2
我想查找所有目录和文件,但不包括链接。我尝试使用find . -maxdepth 1 -type !l \( ! -iname ".*" \) -exec echo {} \;
,但find: Arguments to -type should contain only one letter
。我是否必须运行find . -type d ...
,find . -type f ...
等分开的命令?如果mydir
包含其他类型的文件怎么办?
答案 0 :(得分:5)
在测试之前,!
或-not
来反转测试(在-type
之前的情况下);所以,你可以写:
find . -maxdepth 1 ! -type l \( ! -iname ".*" \) -exec echo {} \;
或者,清理一下:
find . -maxdepth 1 ! -type l ! -iname '.*'
答案 1 :(得分:0)
不使用find
:
file * | grep -v ': .*link' | cut -d: -f1