Создайте каталоги из списка файлов с пробелами на имя

Попытка:

scp /path/to/file/* user@server:/path/to/files/

это будет жаловаться на не копирование каталогов.

Если Вы хотите скопировать файлы в каталогах под /path/to/, можно сделать:

scp /path/to/*/* user@server:/path/to/files/
2
03.04.2014, 11:17
3 ответа

Пробелы в имени файла / каталога допустимы, если эти имена правильно заключены в кавычки:

find . -maxdepth 1 -name "*.doc" | while IFS= read -r f; do 
    mkdir -- "${f%.doc}"; 
done
3
27.01.2020, 21:49
[12211] Вы можете задать параметры подоболочки с помощью shell-глобусов, а затем передать канал с помощью printf, и . исходный канал в виде скрипта.[12212] И если вы хотите переместить файлы в каждом каталоге:[12213]Примечание: Я намеренно задел вышеперечисленное эхом, потому что я хочу, чтобы вы протестировали вывод перед тем, как погружаться. [12214]FIXED - я забыл использовать два %перцента для printf.[12215]Я протестировал это, кстати:[12216]
2
27.01.2020, 21:49

С zsh:

mkdir -p -- *.doc(:r)

Или:

for f (*.doc) {
  mkdir -p -- $f:r &&
    mv -- $f $f:r/
}

Эквивалент bash (хотя он также будет работать во всех оболочках POSIX и zsh):

for f in *.doc; do
  mkdir -p -- "${f%.*}" &&
    mv -- "$f" "${f%.*}/"
done

(обратите внимание, что он исключает скрытые файлы).

7
27.01.2020, 21:49

Теги

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