Если вложенные папки имеют одинаковые имена, вы можете использовать ответ roaima . Если нет, вы можете использовать простой цикл оболочки:
mkdir -p destination
for name in folder/*; do
[ ! -d "$name" ] && continue
mv "$name" destination
done
Это зациклит все записи каталогов вfolder
(файлах и каталогах ), проверит каждую из них на предмет того, является ли она директорией или нет, и переместит их, если это так.
Другой возможностью является использованиеfind
:
mkdir -p destination
find folder -mindepth 1 -maxdepth 1 -type d -exec mv {} destination ';'
Это позволит найти все пути ко всем каталогам в folder
(, но не ниже, а не к самому каталогу folder
), и переместить каждый найденный каталог в destination
.
cd () {
if [ $# -eq 0 ]; then
builtin cd /some/other/dir
else
builtin cd "$@"
fi
}
Это переопределяет cd
функцией. Если функция не получает аргументов, она вызывает встроенную функцию cd
для перехода в предопределенный каталог. В противном случае он запускает встроенный cd
с исходными аргументами.
Другим другим способом сделать это было бы изменить значение HOME
на какой-то другой каталог, но это также может изменить поведение других утилит.