@Shumaher
Shumaher
17 Aug 2016

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

dir1="/dir"

subs=ls $dir1

for i in $subs; do
mv $dir1/$i/* $dir1/$i/
done

но не работает. как сделать?

17 Aug 2016

mv $dir1/$i/* $dir1/$i/
файл сам в себя перемещается же.

17 Aug 2016

тьфу, это я скопировал неправильно. там так:
mv $dir1/$i// $dir1/$i

но не работает все равно

#oowhbj/2 в ответ на /1
17 Aug 2016

require 'find'
require 'fileutils'

Find.find('.') do |entry|
next unless File.file? entry
FileUtils.mv entry, '.'
end

Не проверял, все равно никто не запустит, LOL.

17 Aug 2016

это на питоне чтоль, или на чем?

#oowhbj/4 в ответ на /3
17 Aug 2016

мне даже запустить нечем это)

#oowhbj/6 в ответ на /5
17 Aug 2016

и что?
mv myfolder/* .
переместит все в текущую, а не уровнем выше

#oowhbj/8 в ответ на /7
17 Aug 2016

там поддиректории же еще до файлов. мне надо рекурсивно выше, а не в текущую

#oowhbj/10 в ответ на /9
17 Aug 2016

find . -type f | xargs -n 1 -I {} -d '\n' mv {} .

Может, так?

#oowhbj/11 в ответ на /10
17 Aug 2016

переместило всё в корневую, откуда запускал, а не выше на 1 уровень

#oowhbj/12 в ответ на /11
17 Aug 2016

А, я думал, тебе надо файлики наружу все вытащить.

echo 'mv "$1" "$(dirname "$(dirname $1)")"' >/tmp/script
chmod +x /tmp/script
find . -type f | xargs -n 1 -I {} -d '\n' /tmp/script {}

#oowhbj/13 в ответ на /12

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.