在一行中执行两个命令
Executing two commands in one line
我有一个特殊的问题,需要我执行 运行 cd
命令,然后再执行 rm
。但是我必须在一行中执行这两个命令这一事实使我受到限制。
假设我的当前目录中有两个文件夹,"A" 和 "B"。在 "A" 文件夹中,我还有两个文件夹,"Fol1" 和 "Fol2",以及一个名为 "File1" 的文本文件。最后,在 "Fol1" 和 "Fol2" 中,它们都有一个文本文件(不管它们叫什么)。
举个例子:
(Current dir)
A B
| |
---------------------------
| | |
Fol1 Fol2 File1
| |
FileA FileB
我想进入 "A",然后删除所有内容,删除除 "Fol1" 和 "Fol2".
中的所有内容
我发现要删除除某些目录之外的所有内容,您可以 运行:
rm -r !(Fol1|Fol2)
我在另一个 post 上看到您可以使用 &
将两个命令组合在一起。所以从当前目录,我决定 运行:
cd A & rm -r !(Fol1|Fol2)
但是当我 运行 这些命令时,我得到:
[1] 17854
[1]+ Done cd A
它最终删除了 "A" 和 "B" 以及其中的所有其他内容。
命令中是否缺少某些内容?我们将不胜感激!
& 符号只是 运行 后台的 cd
命令,启动子 shell,更改目录,然后退出。然后是当前目录下的rm -r
运行,没有Fol1或者Fol2可以忽略。你想要一个分号来分隔这样的命令:
cd A; rm -r !(Fol1|Fol2)
我有一个特殊的问题,需要我执行 运行 cd
命令,然后再执行 rm
。但是我必须在一行中执行这两个命令这一事实使我受到限制。
假设我的当前目录中有两个文件夹,"A" 和 "B"。在 "A" 文件夹中,我还有两个文件夹,"Fol1" 和 "Fol2",以及一个名为 "File1" 的文本文件。最后,在 "Fol1" 和 "Fol2" 中,它们都有一个文本文件(不管它们叫什么)。
举个例子:
(Current dir)
A B
| |
---------------------------
| | |
Fol1 Fol2 File1
| |
FileA FileB
我想进入 "A",然后删除所有内容,删除除 "Fol1" 和 "Fol2".
中的所有内容我发现要删除除某些目录之外的所有内容,您可以 运行:
rm -r !(Fol1|Fol2)
我在另一个 post 上看到您可以使用 &
将两个命令组合在一起。所以从当前目录,我决定 运行:
cd A & rm -r !(Fol1|Fol2)
但是当我 运行 这些命令时,我得到:
[1] 17854
[1]+ Done cd A
它最终删除了 "A" 和 "B" 以及其中的所有其他内容。
命令中是否缺少某些内容?我们将不胜感激!
& 符号只是 运行 后台的 cd
命令,启动子 shell,更改目录,然后退出。然后是当前目录下的rm -r
运行,没有Fol1或者Fol2可以忽略。你想要一个分号来分隔这样的命令:
cd A; rm -r !(Fol1|Fol2)