我是 Linux 新手,作为练习,我需要将以数字结尾的“etc”文件从主目录复制到 test1 目录 (用一个命令)。 我试过了,但没用
find /etc -type f -iname "*[3-9]" -exec cp {} ../test1/ \;
这应该适合您的
home directory files ending with digit
mv `ls . |grep -Eo "^.*[0-9]$"` your-directory
让说在当前目录中你有一些文件,例如 ofjweifhwef9 或 kfhiofeh8 (以数字结尾的文件)
所以
ls
将列出它们。
这个 grep 表达式 "^.*[0-9]$"` 只会查找以数字结尾的文件。 (因为在你的主目录系统中不允许有这样的文件“/etc/somefile123”)
然后 mv 会将这些文件移动到您的目录中
注意:- 如果 grep 找不到以 number 结尾的文件,您当然会看到错误,因为 mv 需要 2 个操作数,但由于它不存在,所以会出现错误。
mv: missing destination file operand after './your-directory'
这可能是因为
/etc
是您正在使用的系统中的链接,并且 find
似乎并不将其视为路径,直到您在末尾添加额外的 /
。试试这个:
find /etc/ -type f -iname "*[3-9]" -exec cp {} ../test1/ \;
注意
/etc/
而不是 /etc
。我在 Mac 上得到了相同的行为,其中 /etc 是另一个目录的链接。
当然,还要确保
/etc/
目录树下有名称以数字结尾的文件。我的 mac 里没有。运行时你应该会得到一些文件:
find /etc/ -type f -iname "*[3-9]"
如果不这样做,则没有任何文件可供复制。您也可以尝试:
find /etc/
查看目录树下的所有文件。
最后,您可能需要添加选项:
-depth 1
如果您只想复制 /etc/
目录中的文件,而不是复制 /etc/
下目录树中匹配的所有文件。
我也有同样的问题。
嗯,我有3台电脑
-> 当我本地登录 Linux Mint 2 2 时,我只看到一个名为 BACKUP 的文件夹
-> 当我登录 Windows 或 Linux Mint 1 时,我看到 2 个远程文件夹 BACKUP 和 BACKUP1。
这在远程来说非常令人困惑。