как мне добавить создание каталога в эту команду cli

Кроме того, чтобы удалить электронные письма определенного пользователя:

grep -lr 'user@domain.com' /var/spool/exim/input/ | \
    sed -e 's/^.*\/\([a-zA-Z0-9-]*\)-[DH]$/\1/g' | \
    xargs exim -Mrm

exim -bp | \
    grep "user_email-account" | \
    awk '{print $3}' | \
    xargs exim -Mrm
0
08.03.2019, 05:54
2 ответа

Попробуйте сделать это с флагом rsync -R (--относительный ):

$ for i in ls./*/filename; do rsync -avR $i../test2; done

Флаг -R синхронизирует полный путь, указанный в командной строке.

-1
28.01.2020, 02:30

Чтобы скопировать полный путь к определенному файлу или каталогу в другой каталог, у вас есть по крайней мере два варианта:

С cpиз GNU coreutils используйте--parents:

cp --parents./*/sourcefile /some/path/destdir

С rsyncиспользуйте -Rили --relative:

.
rsync -R./*/sourcefile /some/path/destdir

Это поместит каждый исходный файл под своим исходным путем в целевой каталог, так что, например. ./a/sourcefileкопируется в /some/path/destdir/a/sourcefileв показанной здесь команде.

Обратите внимание, что при этом нет необходимости перебирать какие-либо файлы.

В системе без GNU cpи rsyncвы, возможно, могли бы выполнить цикл, но вам бы не хотелось зацикливаться на выводе ls. Вместо этого

for pathname in./*/sourcefile; do
    destdir="/some/path/destdir/$(dirname "$pathname")"
    mkdir -p "$destdir" && cp "$pathname" "$destdir"
done

Это будет перебирать все файлы, которые вы хотите скопировать, и для каждого файла будет проверяться наличие соответствующего каталога назначения, а затем копировать файл туда.

Пример:

$ tree
.
|-- dest
`-- src
    |-- a
    |   |-- file
    |   `-- something-else
    |-- b
    |   |-- file
    |   `-- something-else
    |-- c
    |   |-- file
    |   `-- something-else
    |-- d
    |   |-- file
    |   `-- something-else
    `-- e
        |-- file
        `-- something-else

7 directories, 10 files

Любая из двух вышеуказанных команд (или цикл ), введенный здесь, с источником ./src/*/fileи целью ./dest.

$ tree
.
|-- dest
|   `-- src
|       |-- a
|       |   `-- file
|       |-- b
|       |   `-- file
|       |-- c
|       |   `-- file
|       |-- d
|       |   `-- file
|       `-- e
|           `-- file
`-- src
    |-- a
    |   |-- file
    |   `-- something-else
    |-- b
    |   |-- file
    |   `-- something-else
    |-- c
    |   |-- file
    |   `-- something-else
    |-- d
    |   |-- file
    |   `-- something-else
    `-- e
        |-- file
        `-- something-else

13 directories, 15 files
3
28.01.2020, 02:30

Теги

Похожие вопросы