Команда Linux для перемещения всех файлов из var / A в var / - PullRequest
0 голосов
/ 13 июня 2018

Я думаю, что этот вопрос был задан здесь, но я не нашел его.

Я нахожусь в каталоге var /, и у меня есть папка var / A, в которой есть несколько файлов, что я хочуэто переместить эти файлы внутри A в var /.так что я хочу сделать следующее:

от:

var
├── A
|   ├── file1.txt
|   └── file2.txt
└── file3.txt

до:

var
├── file1.txt
├── file2.txt
└── file3.txt

В / VAR я попробовал следующие команды

sudo mv A /

sudo mv A/ ./

sudo mv A/ .

И никто не работал.Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 13 июня 2018

Я нашел ответ:

mv A/* .

Я надеюсь, что это может помочь другому

0 голосов
/ 13 июня 2018

Вы должны указать правильный путь или совпадение, если вы хотите переместить все файлы или директории, которые вам нужны, с помощью * (подстановочные знаки) user@akuma:~/var$ mv ./A/* ./

Вы можете ввести mv --help втерминал для получения дополнительной информации, чтобы увидеть больше вариантов, как показано ниже

 user@akuma:~/WORKSPACE/Trash$ mv --help

  Usage: mv [OPTION]... [-T] SOURCE DEST
  or:  mv [OPTION]... SOURCE... DIRECTORY
  or:  mv [OPTION]... -t DIRECTORY SOURCE...
  Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.

  Mandatory arguments to long options are mandatory for short options too.
     --backup[=CONTROL]       make a backup of each existing destination file
 -b                           like --backup but does not accept an argument
 -f, --force                  do not prompt before overwriting
 -i, --interactive            prompt before overwrite
 -n, --no-clobber             do not overwrite an existing file
 If you specify more than one of -i, -f, -n, only the final one takes effect.
  --strip-trailing-slashes  remove any trailing slashes from each SOURCE
                             argument
 -S, --suffix=SUFFIX          override the usual backup suffix
 -t, --target-directory=DIRECTORY  move all SOURCE arguments into DIRECTORY
 -T, --no-target-directory    treat DEST as a normal file
 -u, --update                 move only when the SOURCE file is newer
                             than the destination file or when the
                             destination file is missing
 -v, --verbose                explain what is being done
 -Z, --context                set SELinux security context of destination
                             file to default type
     --help     display this help and exit
     --version  output version information and exit

  The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.
  The version control method may be selected via the --backup option or through
  the VERSION_CONTROL environment variable.  Here are the values:

none, off       never make backups (even if --backup is given)
numbered, t     make numbered backups
existing, nil   numbered if numbered backups exist, simple otherwise
simple, never   always make simple backups

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
Full documentation at: <http://www.gnu.org/software/coreutils/mv>
or available locally via: info '(coreutils) mv invocation'
0 голосов
/ 13 июня 2018

Мне удалось воспроизвести вашу ситуацию.

.
└── var
    ├── A
    │   ├── file1.txt
    │   └── file2.txt
    └── file3.txt

2 directories, 3 files
user@host:~/soQ$ mv var/A/*.txt var/ && rm -rf var/A/
user@host:~/soQ$ tree

.
└── var
    ├── file1.txt
    ├── file2.txt
    └── file3.txt

Надеюсь, это поможет!

Если вы хотите сделать это из var, просто сделайте mv A/*.txt . && rm -rf A/

Также, давайте предположим, что у вас есть следующая структура в вашем каталоге.

.
├── A
│   ├── file3.txt
│   └── folder1
│       ├── file1.txt
│       └── file2.txt
└── file4.txt

Если вы хотите скопировать только файл *.txt в var, вам нужно использовать команду find следующим образом:

find ./A/* -type f -exec mv {} ${PWD} \; && rm A

Это выглядит на всехфайлы и папки и возвращает путь для каждого файла (например, каждый .txt), а затем выполняет mv в каждой строке и перемещает файлы в текущий каталог (${PWD}).

...