ls
给我:
10 11 12 12L 13 16 702 702L
Run Code Online (Sandbox Code Playgroud)
等等,我想创建文件
10_ 11_ 12_ 12L_ 13_
Run Code Online (Sandbox Code Playgroud)
等等。但,
$ for f in *; do touch "$f_"; done
Run Code Online (Sandbox Code Playgroud)
给我:
touch: cannot touch '': No such file or directory
touch: cannot touch '': No such file or directory
touch: cannot touch '': No such file or directory
touch: cannot touch '': No such file or directory
Run Code Online (Sandbox Code Playgroud)
还,
$ for f in *; do touch $f_; done
Run Code Online (Sandbox Code Playgroud)
给出:
Try 'touch --help' for more information.
touch: missing file operand
Try 'touch --help' for more information.
touch: missing file operand
Try 'touch --help' for more information.
touch: missing file operand
Run Code Online (Sandbox Code Playgroud)
我在此目录中有 100 多个文件,并且不打算在没有脚本的情况下执行此操作。
你可以这样做:
for f in *; do touch "${f}_"; done
Run Code Online (Sandbox Code Playgroud)
当参数是一个多于一位的位置参数时,或者当参数后跟一个不被解释为名称的一部分的字符时,需要大括号。
然而,这需要touch
每个文件,这是非常低效的。更好的方法是让printf
文件列表,在奇怪的文件名的情况下以零分隔,并touch
在需要的帮助下仅在需要时调用xargs
:
printf '%s_\0' * | xargs -0 touch
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
411 次 |
最近记录: |