我想在大约四个子目录下的不同文件夹中执行一个文件。
例如:
我的pwd可能是/home/directoryA。但是,我想执行的文件可能在directoryD. 目前,如果我想执行该文件,我需要转到cd /home/directoryA/directoryB/directoryC/directoryD/然后执行该文件。或者我可能做了类似的事情src /directoryA/directoryB/directoryC/directoryD/somefile
是否可以在不实际位于文件所在目录的情况下执行文件?
有somefile没有不进入目录就执行文件的快捷方式?
不,您不需要使用:
cd home/directoryA/directoryB/directoryC/DirectoryD
./somefile
Run Code Online (Sandbox Code Playgroud)
您可以通过为其路径添加前缀来简单地运行命令:
/home/directoryA/directoryB/directoryC/DirectoryD/somefile
Run Code Online (Sandbox Code Playgroud)
因为你已经在/home/directoryA你可以使用当前目录快捷方式.并像这样运行命令:
./directoryB/directoryC/DirectoryD/somefile
Run Code Online (Sandbox Code Playgroud)
我注意到 OP 通过其他答案下的评论扩大了范围。以下是一些附加信息:
somefile位于何处,请使用:locate somefile。somefile是今天添加的,您需要先通过运行更新定位数据库sudo updatedb。somefile设在PATH,你可以找出哪一个被执行第一次使用which somefile。somefile而不在前面指定目录名,请将其放在路径中。要检查路径,请使用echo $PATH. 要放置的常见路径位置somefile是/usr/local/bin(如果它使用 sudo 权限)和/home/your_user_name/bin(您可能必须先创建目录)。/home/directoryA/directoryB/directoryC/DirectoryD/到您的路径中,但这非常不寻常。但是,somefile无论您在哪个目录中,您都可以简单地键入,它就会运行。somefile必须是您使用以下命令设置的可执行文件:chmod a+x /home/directoryA/directoryB/directoryC/DirectoryD/somefile当然!如果某个文件被标记为可执行文件,您可以使用以下命令运行它
~/directoryA/directoryB/directoryC/DirectoryD/somefile
Run Code Online (Sandbox Code Playgroud)
想知道某个文件是否可执行?进入其目录并运行
find . -maxdepth 1 -perm -111 -type f
Run Code Online (Sandbox Code Playgroud)
查看该目录中的所有可执行文件。