$> ghc -e '20 + 5' 25 it :: Integer
Также
ghci
, это - Компилятор Глазго-Haskell в интерактивном режиме (ghc --interactive
, в противоположность ему, оценивая выражение с-e
), делает для захватывающего "калькулятора":$>ghci GHCi, version 7.8.3: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Prelude> pi 3.141592653589793 Prelude> ceiling pi 4 Prelude> compare 1 2 LT
С инструментами GNU:
cd that-dir &&
find . -mindepth 2 ! -type d -exec mv -it . {} +
Перейдите к родительскому каталогу и работайте
mv -- */* .
(--
только необходимо, если существуют подкаталоги, имя которых начинается -
)
Если существуют файлы в подкаталогах, которые начинаются .
(отметьте точкой файлы), или подкаталоги, имя которых начинается .
, необходимо будет переместить их также:
mv -- */* */.[!.]* */..?* .
mv -- .[!.]*/* .[!.]*/.[!.]* .[!.]*/..?* .
mv -- ..?*/* ..?*/.[!.]* ..?*/..?* .
Удостоверьтесь, что нет никаких конфликтов, иначе последний файл, который Вы перемещаете, тихо перезапишет ранее перемещенный файл с тем же именем. Передайте -i
опция к mv
(т.е. mv -i */* .
) быть запрошенным в случае конфликта.
Можно затем удалить подкаталоги:
rmdir */
Если Вы получаете ошибку при сообщении Вам, что командная строка является слишком длинной, необходимо будет сделать это в несколько этапов. Простой способ с find
команда:
find */ -type f -exec mv -i {} . \;
или, немного быстрее:
find */ -type f -exec sh -c 'mv -i -- "$@" "$0"' . {} +
Еще быстрее, в невстроенной системе Linux:
find . -mindepth 2 -type f -exec mv -it . {} +