Lek*_*eyn 13
如果你想递归复制文件夹的内容(会抛出 1 个错误,下面的替代方案):
cp -r * sub/
Run Code Online (Sandbox Code Playgroud)
有点hacky,但适用于非空子目录:
TARGETDIR='targetdir here';cp -r `find . -maxdepth 1 ! -name "$TARGETDIR"` "$TARGETDIR"
Run Code Online (Sandbox Code Playgroud)
另一个单线:
TARGETDIR='targetdir here';for file in *;do test "$file" != "$TARGETDIR" && cp "$file" "$TARGETDIR/";done
Run Code Online (Sandbox Code Playgroud)
或递归:
TARGETDIR='z';for file in *;do test "$file" != "$TARGETDIR" && cp -r "$file" "$TARGETDIR/";done
Run Code Online (Sandbox Code Playgroud)
假设target
是目标子目录的名称,如果您的 shell 是 bash:
shopt -s extglob
cp -r !(target) target/
Run Code Online (Sandbox Code Playgroud)
在 ksh 中,您可以直接执行cp -r !(target) target/
.
在 zsh 中,你可以setopt ksh_glob
这样做cp -r !(target) target/
。setopt extended_glob
那么还有一种可能cp -r ^target target/
。
这对你有用吗?
cp -r * subdir/
Run Code Online (Sandbox Code Playgroud)
如果您打算移动而不是将当前目录中的所有内容复制到子目录中,您可以这样做:
mv * subdir/
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
44934 次 |
最近记录: |