lls是自己新建的命令,先看看普通的方法:
手动用ls列出文件, 并在前缀上加上pwd:
ls | sed "s:^:`pwd`/:" #列出当前文件夹下所有文件的绝对路径
ls -d 1.py | sed "s:^:`pwd`/:" #列出当前文件夹下1.py的绝对路径
但手动ls加pwd这种方式若要列出如 ../../../1.py 或 ~/1.py 这种文件时会出现问题.
后来发现linux下可以用命令 realpath 列出某个文件的绝对路径:(Mac系统下要先brew install coreutils;才有realpath命令)
realpath * #列出当前文件夹下所有文件的绝对路径
realpath 1.py #列出当前文件夹下1.py的绝对路径
不过每次要输入realpath 这么长的单词有点麻烦, 索性自己新建一个命令叫 lls
在/usr/loca/bin/的文件夹下新建一个文件:
sudo vim /usr/local/bin/lls
#mkdir -p ~/bin; vim ~/bin/lls #如果上面的命令没有sudo权限的话就这样
然后把下面这段复制进去
#!/bin/bash
if [ $# -gt 0 ]
then
realpath $*
else
realpath *
fi
最后为lls添加可执行权限:
sudo chmod +x /usr/local/bin/lls
#chmod +x ~/bin/lls #如果上一步没有sudo权限的话就这样
大功告成:
现在就可以直接在任何目录下, 直接输入lls就列出所有该目录下所有文件的地址了。
#相比'realpath *'输入更简洁:
lls
#支持通配符
lls *.py
#支持home目录
lls ~/1.py
#支持上级文件夹
lls ../../../1.py
#支持管道
find . -name '1.py' |xargs lls