我喜欢从$PATH变量或$CDPATH中的任何目录执行命令以更改目录的灵活性和简单性。
但是,有没有一种简单的方法可以从您经常访问的目录列表中"减少或打开文件"。
假设您在不同的目录中有日志文件,在另一个目录中有其他经常访问的目录。less file1
命令应该在像$PATH或$CDPATH变量一样定义的目录列表中查找file1。
我知道你在寻找现有的解决方案,但如果你使用bash,你可以编写一个具有以下行为的函数:
放入~/.bashrc
:
less2()
{
if [ $# -eq 0 ]; then
echo 'Missing filename ("less --help" for help)'
return 1
fi
if [ "$1" == "--help" ]
then
less $1
return 1
fi
OLDIFS=$IFS
IFS=':'
if [ -z $LESSPATH ]; then
SEARCH_PATHS=.
else
SEARCH_PATHS=.:${LESSPATH}
fi
for dir in $SEARCH_PATHS
do
if test -e "$dir/$1"
then
less "$dir/$1"
IFS=$OLDIFS
return
fi
done
IFS=$OLDIFS
echo "$1: No such file or directory"
}
您需要执行source ~/.bashrc
才能在bash中获得less2。
如何使用脚本
默认情况下,它会查找当前目录中的文件。如果设置了环境变量LESSPATH less2
,它将首先在当前目录中查找文件,然后如果不存在,它将在$LESSPATH
中的所有目录中查找该文件。less2
是当前bash进程中的一个函数,因此不需要导出LESSPATH
,但当然也可以导出LESSPATH
。
$ less2 my_file.log
$ LESSPATH=path1:path2:path3
$ less2 my_other_file.log