我想创建一个别名,例如,如果我键入fullList,它将在完整路径中打印出一个具有特定扩展名的自定义文本,列出最后一次修改的最后一次类似
>fullList
file = /home/user/something/fileA.txt &
file = /home/user/something/fileB.txt &
file = /home/user/something/fileC.txt & <- the last modified.
如果你想要确切的示例输出,你会想要做一些类似的事情。
#!/bin/bash
echo
for i in $(ls -trF *.txt); do
full_path="$(pwd $i)/$i"
echo "file = $full_path &"
done
如果你想做一个简单的单行别名,可以做下面这样的事情。
> alias fullList="echo; for i in $(ls -trF *.txt); do full_path="$(pwd $i)/$i"; echo "file = $full_path &"; done"
> fullList
file = /some/path/oldest.txt &
file = /some/path/newer.txt &
...
file = /some/path/newest.txt &
注意,这是假设您只想查找文件,因为ls的F标志会将"/"附加到目录中。
函数
使用function
而不是alias
。从今以后,你将能够通过论证
fullList() {
customText="$1"
for f in "$PWD"/* # list current dir files
do
printf "%s: %sn" "$customText" "$PWD/$f"
done
}
用法
然后运行
$ fullList 'blabla'
blabla: /path/to/file1
blabla: /path/to/file2
blabla: /path/to/file2
你知道吗
tree
命令?可能有助于列出目录内容:
tree -f -L 1 $(pwd)/
/home |-- /home/user1 `-- /home/user2