将所有文件移动到不包括该目录的新目录

soj*_*oju 12 bash

我有以下几点:

~@matrix:~/btp200/assignments> ls -la
total 40
drwxr-xr-x 3 molszewski1 users 4096 Feb  6 13:20 .
drwxr-xr-x 6 molszewski1 users 4096 Feb  6 13:14 ..
-rw-r--r-- 1 molszewski1 users 5727 Feb  6 13:20 ISBN.cpp
-rw-r--r-- 1 molszewski1 users  361 Feb  6 13:18 ISBN.h
-rw-r--r-- 1 molszewski1 users 3753 Feb  6 13:17 ISBNPrefix.cpp
-rw-r--r-- 1 molszewski1 users  422 Feb  6 13:15 ISBNPrefix.h
drwxr-xr-x 2 molszewski1 users 4096 Feb  6 13:20 a1
-rw-r--r-- 1 molszewski1 users    0 Feb  6 13:15 a1.cpp
-rw-r--r-- 1 molszewski1 users 6271 Feb  6 13:18 prefixRanges.txt
~@matrix:~/btp200/assignments> mv * a1
mv: cannot move `a1' to a subdirectory of itself, `a1/a1'
Run Code Online (Sandbox Code Playgroud)

如何将所有内容移动到目录中,但a1不包括a1

小智 15

包含除一项之外的所有内容的一种方法是:

mv !(a1) a1
Run Code Online (Sandbox Code Playgroud)

这是您需要首先启用的功能:

shopt -s extglob
Run Code Online (Sandbox Code Playgroud)

  • 我如何在 shell 脚本中执行此操作?我不断收到“意外标记附近的语法错误”“(” (4认同)

spa*_*cvs 6

mv -f * a1
Run Code Online (Sandbox Code Playgroud)

尽管有争论,这将迫使此举发生。然后做一个ls之后,你会看到它起作用了。