如何将目录中的所有文件(包括隐藏文件)移动到另一个目录?
例如,如果我有一个文件夹“Foo”,里面有文件“.hidden”和“notHidden”,我如何将这两个文件移动到名为“Bar”的目录中?以下不起作用,因为“.hidden”文件保留在“Foo”中。
mv Foo/* Bar/
Run Code Online (Sandbox Code Playgroud)
自己试试吧。
mkdir Foo
mkdir Bar
touch Foo/.hidden
touch Foo/notHidden
mv Foo/* Bar/
Run Code Online (Sandbox Code Playgroud) 如何使用find生成包含最多文件数的目录列表。我希望列表从高到低排列。我只希望列表深入 1 级,并且我通常会从文件系统的顶部运行此命令,即/.
在下面的命令将tar所有的“点”文件和文件夹:
tar -zcvf dotfiles.tar.gz .??*
Run Code Online (Sandbox Code Playgroud)
我熟悉正则表达式,但我不明白如何解释.??*. 我执行ls .??*并tree .??*查看了列出的文件。为什么此正则表达式包含文件夹中以.例如开头的所有文件?
在 LSB 或 POSIX 或其他一些规范中.*包含.和..定义的行为是什么?
我想列出当前目录中的每个文件,包括隐藏文件。我不想包含父 (..) 和当前 (.) 目录。
我找到了这个:
最后,有人说ls -A是要走的路,但它被否决了。但是,它似乎有效。怎么了ls -A?
通常通配符扩展不包括点文件:
% echo *
Applications Desktop Documents Downloads Library Movies Music Pictures Public bin
Run Code Online (Sandbox Code Playgroud)
如果我明确要求点文件,我会得到它们:
% echo * .*
Applications Desktop Documents Downloads Library Movies Music Pictures Public bin . .. .CFUserTextEncoding .DS_Store .Trash .adobe .bash_history .cups .gitconfig .gnupg .history .lesshst .netbeans .scanview.cfg .sqlite_history .ssh .swt .systemmodeler .tcshrc .viminfo
Run Code Online (Sandbox Code Playgroud)
但是我也得到.和..。我不想要那些,例如,如果我传递到du -s我想要目录中每个项目的大小的地方。是否有一些模式可以让我知道当前目录中的内容,以及当前目录中没有.和的所有内容..?
我使用 tcsh。
(关于“这个问题在这里可能已经有答案:”上面的注释:不,这个问题在那里没有答案,因为该答案仅适用于 bash。)
通常在 bash 我做过
shopt -s extglob
rm !(filedontwantremove)
Run Code Online (Sandbox Code Playgroud)
并删除除 filedontwantremove 之外的所有文件
但是,如果我想删除除 filedontwantremove 和“antotherfilewithtotaldifferentname”之外的所有文件?
有一个找到解决方案,但我更喜欢我喜欢的东西 rm !()