- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个包含子目录 A、B、C 和 D
的文件夹。我需要将目录 A 和 D
复制到另一个名为 'copy'
的目录,同时排除 B 和 C
(即 B 和 C 没有得到复制过来)。我正在考虑执行以下操作(在命令行伪代码中):
ls (selective ls on the source directory) |
scp -r {returned value from the ls} {target directory}
是否有 Linux 命令行方式来完成上述任务?
最佳答案
我建议为此使用 find。
让我们创建一些测试对象:
$ mkdir -p ./testing/test{1,2,3,4}
$ touch ./testing/test{1,2,3,4}/test{a,b}
将导致:
$ ls -R ./testing
./testing:
test1 test2 test3 test4
./testing/test1:
testa testb
./testing/test2:
testa testb
./testing/test3:
testa testb
./testing/test4:
testa testb
现在,运行
$ mkdir ./testing/copy
$ find ./testing/ -mindepth 1 -maxdepth 1 ! -name test1 ! -name test3 ! -name copy -execdir cp -R '{}' ./copy/ ';'
将导致:
$ ls -R ./testing/
./testing/:
copy test1 test2 test3 test4
./testing/copy:
test2 test4
./testing/copy/test2:
testa testb
./testing/copy/test4:
testa testb
./testing/test1:
testa testb
./testing/test2:
testa testb
./testing/test3:
testa testb
./testing/test4:
testa testb
背景资料:
总结:找到需要复制的目录,执行复制命令。在这种情况下,让我们复制除“test1”和“test3”之外的所有目录。
-mindepth 1 选项将阻止 find 包含 .可能还有 .. 目录,因为它们的深度为 0。
-maxdepth 1 选项将阻止 find 单独复制每个子目录。命令 cp -R 处理子目录,因此它们被覆盖。
使用 -execdir 而不是 -exec,这样您就不必将整个路径作为 cp 命令的目标目录。
在运行 find 之前不要忘记 mkdir 你的目标目录,并且不要忘记从结果中排除这个目录!因此! -name copy 我的示例中的选项。
我希望这能为您指明正确的方向。
关于linux - 从 ls 中排除某些目录并将其余目录复制到共享路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10883300/
如果我执行 ls -la,我会得到如下结果 total 16 drwxr-xr-x 4 rockse staff 136 Apr 28 16:55 . drwx------+ 23 rocks
我找到了一些Linux文件,当我键入ls -lah时,它将输出以下权限格式: ... drwxr-xr-x. 2 root root ... -rw-rw-r--. 1 root r
我正在尝试从 python 执行 ls -l 来检查文件的最后修改日期。 os.listdir 不显示长列表格式。subprocess.call 显示格式,但实际上打印它,并返回 0。我希望能够将其放
以下 shell 函数定义卡在 Cygwin 的 bash 控制台 (RHEL/Ubuntu) 中,当它被调用时它只是退出终端。 $ function ls { ls; } $ ls 为什么会出现这种
为什么这两个命令的输出不同: ls | cat ls 第一个似乎用换行符分隔文件名。 这也适用于命令 suc 有 ls > outfile 和类似的东西。 我使用的是 Mac OSX,如果这有什么不同
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我使用 eshell-parse-command 'ls -l' 得到了这个: (progn (eshell-trap-errors (eshell-named-command "l
如何使用 RegExp 在 JavaScript 中实现类似于 alias 的功能? ALIAS = [{pattern: /^ls[$ ]/, replace: 'ls --color '}] s
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在编写一个 shell 程序,当将值传递给 execv() 时,我需要一个指向程序名称的 char 指针(即 ls),我需要一个指向参数的 char 指针数组的指针。 我会检查并解析用户的输入,如
我对使用 bash 编写脚本还比较陌生,并编写了以下脚本: # Set variables logfile=/tmp/peter/logfile.log indir=/mls/indir/IG/ te
所以基本上我有一个任务要使用 strace 进行分析,ls 命令需要哪些系统调用才能提供与 ls -l 相同的信息。 但是对于 ls -l 命令有许多奇怪的系统调用,例如 stat 64 被调用时使用
我在 ubuntu 的文件夹中有一个文件夹列表。IE。/mnt/source/customcode/files/brands/下 root@a919794ec280:/mnt/source/custo
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
#include #include #include #include #include int flag; void catch (int sig) { if (sig == SIGI
我使用 Process 来调用 shell(zsh),我想 cd ~ 或其他一些目录,例如在 shell 中定义的 cd $PROJ_ROOT。但似乎无法处理这些 token 。如何解决这个问题? s
我在我的 Centos5 机器上运行了这个: ls -al & ; ls -al 我期待它在后台运行 ls -al,同时在前台运行 ls -al,并演示终端的输出是如何被破坏的通过这样做。 但是,我得
当我在 PowerShell 中使用 Get-ChildItem 时,我会得到目录中以行格式设置的项目列表。该列表经常会超出屏幕,如果我想查看列表的其余部分或以前的命令和输出,则迫使我向上滚动。我想为
我试图用所有必要的参数绕过调用 JNIEnv->DefineClass 方法,但当我尝试从 java 调用该方法时,它总是返回 java.lang.NoClassDefFoundError: ls.H
我是一名优秀的程序员,十分优秀!