我想使用 ls ? Bash 变量中的选项。
如何让脚本执行与 相同的操作ls -lt foobar_??????.log
?
$ cat foobar_ls.sh
#!/bin/bash
FOOBAR_LIST="foobar_??????.log"
ls -lt "$FOOBAR_LIST"
这是提示版本:
$ls -lt foobar_??????.log
-rw-r--r-- 1 foobar foobiz 0 Nov 1 14:58 foobar_000003.log
-rw-r--r-- 1 foobar foobiz 0 Nov 1 14:58 foobar_000002.log
-rw-r--r-- 1 foobar foobiz 0 Nov 1 14:58 foobar_000001.log
这是我的脚本版本:
$ ./foobar_ls.sh
ls: cannot access foobar_??????.log: No such file or directory
答案1
答案2
这对我有用,但根据您所做的事情,将该变量不加引号可能不是一个好主意。您可能还应该使用以下以外的东西ls
: http://mywiki.wooledge.org/ParsingLs
foobar_ls.sh
#!/bin/bash
FOOBAR_LIST="foobar_??????.log"
ls -lt ${FOOBAR_LIST}
要重命名这些文件,您可以执行以下操作之一:
shopt -s nullglob
for file in /path/to/files/foobar_??????.log; do
mv "$file" "${file}.old"
done
shopt -u nullglob
或者
find /path/to/files -type f -name 'foobar_??????.log' -exec mv {} {}.old \;