我想创建一个别名,例如,如果我输入fullList,它将打印出一个自定义文本,在完整路径中列出了特定扩展名,最后修改了最后一个像
>fullList
file = /home/user/something/fileA.txt &
file = /home/user/something/fileB.txt &
file = /home/user/something/fileC.txt & <- the last modified.
答案 0 :(得分:1)
如果你想要你的确切示例输出,你会想要做类似的事情。
#!/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 标志会将“/”附加到目录。
答案 1 :(得分:1)
使用function
代替alias
。从此以后,您将能够传递参数
fullList() {
customText="$1"
for f in "$PWD"/* # list current dir files
do
printf "%s: %s\n" "$customText" "$PWD/$f"
done
}
然后运行
$ fullList 'blabla'
blabla: /path/to/file1
blabla: /path/to/file2
blabla: /path/to/file2
tree
command?列出目录内容可能会有所帮助:
tree -f -L 1 $(pwd)/
/home |-- /home/user1 `-- /home/user2