Как зациклить каталоги и переместить их в другое место, когда в имени каталога есть пробелы и каталог имеет определенные расширения файлов - PullRequest
0 голосов
/ 06 октября 2018

У меня есть папка со следующими каталогами

$ pwd
/d/xxx
'Anupam Roy - Zulfiqar (Original Motion Picture Soundtrack)'/
'Zulm Ka Jawab [1995] [Soundtrack]{Original Release  Melody  Top Star  MCD No. 406  CD}'/

В первом каталоге есть список файлов с расширением .flac Во втором каталоге есть еще одна папка с именем

'Bappi Lahiri - Zulm Ka Jawab (1995) [FLAC] {Melody MCD-406}'/

Мои требованияЭто цикл по всем каталогам в / d / xxx и перемещение их в другое место.Если в каталоге есть файлы flac, я хочу пропустить этот каталог.

В этом случае я хочу переместить 'Bappi Lahiri - Zulm Ka Jawab (1995) [FLAC] {Melody MCD-406}' / и пропустить 'Anupam Roy - Zulfiqar (оригинальный саундтрек к фильму) '/

Я видел сценарий, но он не работает, так как в имени каталога есть пробелы

#!/bin/bash
for d in D:/xxx/*/; do
    count=`ls -l *.flac 2>/dev/null | wc -l`
    if [ -d "$d" ] && [ $count == 0 ]; then
        mv $d D:/krishna/
        #$echo "$d"
    fi
done

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

все заработало

#!/bin/bash
for d in */; do
    echo $d
    cd "$d"
    count=`ls -l *.flac 2>/dev/null | wc -l`
    cd ..
    echo $count
    if [ -d "$d" ] && [ $count == 0 ]; then
        mv "$d"/* D:/krishna/
        #$echo "$d"
    fi
done
0 голосов
/ 06 октября 2018

Я немного изменил скрипт, теперь я запускаю скрипт из D: \ xxx

#!/bin/bash
for d in */; do
    echo $d
    cd "$d"
    count=`ls -l *.flac 2>/dev/null | wc -l`
    cd ..
    echo $count
    if [ -d "$d" ] && [ $count == 0 ]; then
        mv $d D:/krishna/
        #$echo "$d"
    fi
done

Но это дает ошибки

$ ./dcdcopy.sh
Anupam Roy - Zulfiqar (Original Motion Picture Soundtrack)/
6
Zulm Ka Jawab [1995] [Soundtrack]{Original Release Melody Top Star MCD No. 406 CD}/
0
mv: cannot stat 'Zulm': No such file or directory
mv: cannot stat 'Ka': No such file or directory
mv: cannot stat 'Jawab': No such file or directory
mv: cannot stat '[1995]': No such file or directory
mv: cannot stat '[Soundtrack]{Original': No such file or directory
mv: cannot stat 'Release': No such file or directory
mv: cannot stat 'Melody': No such file or directory
mv: cannot stat 'Top': No such file or directory
mv: cannot stat 'Star': No such file or directory
mv: cannot stat 'MCD': No such file or directory
mv: cannot stat 'No.': No such file or directory
mv: cannot stat '406': No such file or directory
mv: cannot stat 'CD}/': No such file or directory
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...