我正在制作一个小型的 .desktop 创建器,用户可以在其中提供路径。路径可以是链接应用程序或目录。有没有直接的方法来测试它是否是应用程序?我可以测试它是否是目录。
谢谢
答案1
请参阅man bash
,您可以执行以下操作:
-a file
True if file exists.
-d file
True if file exists and is a directory.
-e file
True if file exists.
-f file
True if file exists and is a regular file.
-u file
True if file exists and its set-user-id bit is set.
-x file
True if file exists and is executable.
-L file
True if file exists and is a symbolic link.
还有很多很多。
file
您还可以使用命令(参见)查看文件“内部”man file
以获取更多信息。
而不是解析输出ls
(这总是会导致最终的混淆),而应该使用/usr/bin/stat -c "%a %n" filename
:
$ stat -c "%a %n" .bashrc
700 .bashrc
答案2
测试它是否是一个应用程序?你可以检查它是否可执行:
ls -l {path} | cut -d " " -f 1 | grep -c x
如果不可执行则返回 0,如果可执行则返回正整数。