如何将目录中的所有文件(包括隐藏文件)移动到另一个目录?
例如,如果我有一个文件夹“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) 当我们只使用文本模式时,午夜指挥官是一个非常有用的工具。但有时我必须查看文件夹中的所有隐藏文件(以“.”开头的文件),这让我感到困扰。
我试图找到如何自己改变一些配置,然后查看手册页。但我没有成功。
有谁知道我该怎么做?
我注意到一些应用程序将它们的配置文件放在其中,~/.config/appname
而其他应用程序为此使用~/.appname
(经典方式,AFAIK)。这种区别有什么意义,我的应用程序可以更好地考虑什么?
更新:看起来我的(XUbuntu 11.10 默认)$XDG_CONFIG_HOME 设置为~/
并且我系统中的大多数应用程序(如 Mozilla Firefox、Adobe Flash Player、Midnight Commander、Opera、Wine 等)都符合这一点。但仍有许多应用程序(如 Compiz、Deadbeef、VLC、Qt Creator、Google Chrome、XFCE 等)在使用~/.config/
。另一个可疑的事情是目录~/.config/
本身不是隐藏的(它们的名称中没有点) - 应用程序配置目录是否不希望在不依赖于位置($XDG_CONFIG_HOME 值)的情况下具有恒定的自己的名称?
多年来,我一直将我的整个$HOME
目录检查到 subversion 中。这包括我所有的点文件和应用程序配置文件、许多脚本、工具和技巧、我喜欢的基本主目录结构、不是一些奇怪的项目和一个值得随机数据的仓库。这是一件好事。虽然持续了。
但它已经失控了。几十个系统的基本结账是相同的,但并非所有这些东西都适合我的所有机器。它甚至不能在不同的发行版中都能很好地发挥作用。
我正在清理房子——将数据从它所属的地方分离出来,将一些脚本拆分为单独的项目,修复一些应该自动化的东西中的断开链接,等等。
我的意图是,以取代subversion
与git
为顶层结账$HOME
,但我想这削减下来,只是我想对我所有的系统,这意味着点文件,一些目录和一些基本的自定义脚本的事情。
在在线阅读时,很多人似乎都使用符号链接方法来执行此操作:克隆到子目录中,然后从$HOME
存储库中创建符号链接。$HOME
十多年来,我一直在完全版本控制之下,我不喜欢这种方法的想法,我无法弄清楚为什么人们似乎如此反对直接结帐方法。我需要了解特定于git
作为顶级结帐的陷阱$HOME
吗?
PS 部分作为良好编码的练习,我还计划在 GitHub 上公开我的根结帐。令人恐惧的是,我允许在应该毫不犹豫地共享的文件中收集多少安全敏感信息!WiFi 密码、未加密的 RSA 密钥等。 Eeek!
我想知道这两者之间的区别是什么:
~/somedirectory/file.txt
Run Code Online (Sandbox Code Playgroud)
和
~/.somedirectory/file.txt
Run Code Online (Sandbox Code Playgroud)
在谷歌上问这个真的很困难,因为我不知道如何解释.
当我什至不知道该怎么称呼它时。但是有人可以描述包含点和排除它之间的区别吗?
如何匹配给定目录中的隐藏文件
例如
如果我给出以下命令,它不会给出隐藏文件的结果,
du -b maybehere*/*
Run Code Online (Sandbox Code Playgroud)
如何使用单个命令而不是使用来实现这个简单的
du -b maybehere*/.* maybehere*/*
Run Code Online (Sandbox Code Playgroud)
因为我需要输入两次maybehere。
如果我疯了,我将如何将文件重命名为..
或.
?甚至允许这样的文件名吗?
反斜杠似乎并没有禁用点的特殊含义:
$ mv test \.
mv: `test' and `./test' are the same file
Run Code Online (Sandbox Code Playgroud) 这个答案表明可以将所有文件(包括隐藏文件)从目录复制src
到目录中,dest
如下所示:
mkdir dest
cp -r src/. dest
Run Code Online (Sandbox Code Playgroud)
答案或其评论中没有解释为什么这实际上有效,似乎也没有人找到有关此的文档。
我尝试了一些东西。一、正常情况:
$ mkdir src src/src_dir dest && touch src/src_file src/.dotfile dest/dest_file
$ cp -r src dest
$ ls -A dest
dest_file src
Run Code Online (Sandbox Code Playgroud)
然后,/.
最后:
$ mkdir src src/src_dir dest && touch src/src_file src/.dotfile dest/dest_file
$ cp -r src/. dest
$ ls -A dest
dest_file .dotfile src_dir src_file
Run Code Online (Sandbox Code Playgroud)
因此,这与 的行为类似*
,但也会复制隐藏文件。
$ mkdir src src/src_dir dest && touch src/src_file src/.dotfile dest/dest_file
$ cp -r src/* dest …
Run Code Online (Sandbox Code Playgroud) 我们团队中的某个人想要递归更改用户主目录中所有隐藏目录的用户权限。为此,他执行了以下命令:
cd /home/username
chown -R username:groupname .*
Run Code Online (Sandbox Code Playgroud)
当我们意识到他实际上递归地更改了 /home 中所有用户目录的权限时,我们感到非常惊讶,因为.*
equals to..
也是如此。不过,您会在 Linux 中预料到这种行为吗?
由于工作原因,我最近开始使用 OS X 并使用自制软件进行设置,以获得与 Linux 类似的体验。
但是,它们的设置存在相当多的差异。有些只需要在一个系统上就位。由于我的 dotfiles 位于 git 存储库中,我想知道我可以设置什么样的开关,以便某些配置仅适用于 Linux 系统而其他配置适用于 OS X。
至于点文件,我指的是,其中包括.bash_profiles
或.bash_alias
。