LINUX.ORG.RU
решено ФорумAdmin

Сделайте попроще.

 ,


0

1

Знаю что это называется «чесать правой рукой левое яйцо». Вроде бы можно, но на душе не спокойно.
Поправьте.

ll -p | grep -v / >> file1 && for fl in `cat file1`; do mv "$fl" dir1; done

★★★★★

Ответ на: комментарий от anonymous

замени ll на ls -l
На редхатоподобных по дефолту стоит алиас.

dada ★★★★★
() автор топика
find ./ -type f -exec mv {} dir1 \;

Не подойдет? Соответствующих проверок(глубина поиска и т.д.) насовать по вкусу

Pinkbyte ★★★★★
()
cp * dir1/
rm *
cp -l * dir1/
rm *

Если не дурак поймешь, что тут и как.

anonymous
()
Ответ на: комментарий от Pinkbyte

Блдаж, забыл что find в сабдиректориях тоже ищет.
Теперь всё плюхнулось в dir1.
Хорошо, что тестовый сервачок =)

dada ★★★★★
() автор топика

for i in *; do [ -f «$i» ] && mv «$i» dir1; done

anonymous
()
Ответ на: комментарий от dada

Блдаж, забыл что find в сабдиректориях тоже ищет.

Ну ёклмн, я ж специально упомянул ;-)

find ./ -maxdepth 1 -type f -exec mv {} dir1 \;

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Уже сам додумался =)
Спасибо.

dada ★★★★★
() автор топика
function movetodir
{
    for file in $(ll -p | grep -v /); do
        mv "$fl" "$1"
    done
}

И вообще надо юзать find в таком случае.

nexfwall ★★★★
()
Последнее исправление: nexfwall (всего исправлений: 1)

Правильный способ:

find . -maxdepth 1 -type f ... -exec mv -t «$dir1» '{}' +

DonkeyHot ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.