相关疑难解决方法(0)

'rm .*' 会删除父目录吗?

该表达式.*由 bash 扩展以包括当前和父目录:

$ ls -la
total 2600
drwxrwxrwx   2 terdon terdon 2162688 Sep 10 16:22 .
drwxr-xr-x 142 terdon terdon  491520 Sep 10 15:34 ..
-rw-r--r--   1 terdon terdon       0 Sep 10 16:22 foo
$ echo .*
. ..
Run Code Online (Sandbox Code Playgroud)

如果我rm -rf .*使用 GNU bash 在我的 Debian 上运行,version 4.2.36(1)-release并且rmrm (GNU coreutils) 8.13,我会收到以下消息:

$ rm -rf .*
rm: cannot remove directory: `.'
rm: cannot remove directory: `..'
Run Code Online (Sandbox Code Playgroud)

这是 GNU 的东西还是 POSIX?是否有任何 …

shell posix wildcards rm

58
推荐指数
1
解决办法
6631
查看次数

有没有理由“。” 执行 ls -a 后出现“..”?

如果我跑 ls -a

user@users-MacBook-Pro:~$ ls -a
.           ..
Run Code Online (Sandbox Code Playgroud)

我得到...(当前目录和父目录?)

他们出现之后有什么原因ls -a他们做了什么有趣的事情吗?

ls shell

14
推荐指数
5
解决办法
7532
查看次数

复制【cp的使用】问题

我在/mnt上安装了几个子文件夹。一个是/mnt/data,另一个是/mnt/1804iso。该/数据包括数据文件夹和文件从安装另一个磁盘,和/ 1804iso包括安装其内容我想复制到文件夹ISO文件/媒体/尼/ 0EB4-95E2 /这是一个安装闪存驱动器。

所以我打开bash并输入sudo cp -Rn /mnt/1804iso/.* /media/benny/0EB4-95E2/. 我通常会省略通配符星号/*/之前的句点,但如果我这样做,则 ISO 中的隐藏文件不会复制。所以有了这个命令,一件奇怪的事情发生了。正确复制 ISO 文件后,它也开始复制/mnt/data文件夹和文件。我不明白为什么会发生这种情况,因为没有引用该文件夹,除非我对命令部分的理解/mnt/1804iso/.*完全有缺陷。

有人可以解释为什么我的/mnt/data文件夹被包含在复制中吗?

bash cp gnome-shell

5
推荐指数
2
解决办法
2086
查看次数

grep 忽略以点开头的文件

让我举个例子吧:

$ echo Hello > file1
$ echo Hello > file2
$ echo Hello > .file3
$ grep Hello * 2>/dev/null
file1:Hello
file2:Hello
Run Code Online (Sandbox Code Playgroud)

在这里您可以看到忽略的 grep.file3.

预期结果:

$ grep Hello * 2>/dev/null
.file3:Hello
file1:Hello
file2:Hello
Run Code Online (Sandbox Code Playgroud)

在 的情况下ls,有一个参数-a告诉不要忽略以开头的条目,.但我找不到任何功能grep

那么,无论如何要告诉grep不要忽略以 开头的条目.?或者为什么grep忽略它们?

grep dot-files

2
推荐指数
5
解决办法
4848
查看次数

标签 统计

shell ×2

bash ×1

cp ×1

dot-files ×1

gnome-shell ×1

grep ×1

ls ×1

posix ×1

rm ×1

wildcards ×1