如何在不列出另一个目录的完整路径作为命令行参数的情况下从当前目录-ls另一个目录的内容?我还需要按大小对目录的内容进行排序,并且仅输出大小和名称。例如,我有以下名为script.sh
的shell脚本:
#!/bin/bash
ls -lS $1 | awk '{print $5, $9}'
-lS按大小列出文件,而awk仅输出大小和文件名作为输出。 $ 1是命令行参数,但是现在,它只能采用目录的完整路径才能起作用。例如,我有一个目录,其路径为/accounts/documents/folder/directory1
。
要调用此脚本,我必须输入$ script.sh /accounts/documents/folder/directory1
才能使它起作用。我可以在脚本中进行一些更改,以便在命令行中只需输入$ script.sh directory1
即可正常工作吗?
感谢您的帮助!
答案 0 :(得分:0)
假设您要查找的目录始终是一个子目录,则以下脚本应该起作用:
#!/bin/bash
for FILE in `find . -name "$1" `
do
if [ -d $FILE ]
then
ls -lS $FILE | awk '{print $5, $9}'
fi
done