[英]Directory as command line argument without using full path name in linux
您如何从当前目录中-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
来使其工作吗?
任何帮助表示赞赏!
假设您要查找的目录始终是一个子目录,则以下脚本应该起作用:
#!/bin/bash
for FILE in `find . -name "$1" `
do
if [ -d $FILE ]
then
ls -lS $FILE | awk '{print $5, $9}'
fi
done
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.