cp -r $(<sources) target/
должно работать.
Предполагается, что пути перечислены в файле sources
.
Каждый путь может быть путем к каталогу или файлу, но ни один путь в файле sources
не может содержать пробелы (пробел, табуляция, новая строка и т. д.) или символ подстановки оболочки (например, *
или ?
), и их не следует заключать в кавычки (если только само имя не содержит кавычек).
Вы также можете использовать что-то вроде
xargs -t -Isrc cp -r src target/ <sources
Это позволит использовать более экзотические имена файлов, но не имена файлов с переводом строки.
Ниже приведен короткий сценарий bash
, который преобразует набор имен файлов в нижний регистр (echo
следует удалить, чтобы выполнить фактическое посмотреть, что будет).
#!/bin/bash
for path in "$@"; do
dir="${path%/*}"
name="${path##*/}"
if [[ ! "$path" -ef "$dir/${name,,}" ]]; then
echo mv "$path" "$dir/${name,,}"
fi
done
Тест -ef
возвращает значение true, если два пути ссылаются на один и тот же файл (в этом случае переименование не должно происходить). Подстановка переменной ${name,,}
- это то, что фактически делает нижний регистр.
Вы можете применить это к такому каталогу:
$ find target -type f -exec bash tolower.sh {} +
Вы передали параметр -r
(или --resizefs
) для продлить
? Если нет, вам нужно сделать дополнительный шаг.
По умолчанию lvextend
расширяет LV, но оставляет нетронутой файловую систему, содержащуюся в этом LV. Файловая система — это то, что вы монтируете и о каком размере сообщает df
.
Вам необходимо вручную расширить файловую систему, чтобы она знала, что базовое устройствовыросло.
Способ расширения зависит от фактической файловой системы; например для ext2/ext3/ext4 используется инструмент resize2fs
, для xfs инструмент xfs_growfs
и т. д.
Некоторые файловые системы позволяют онлайнизменять размеры в то время как другие потребуют, чтобы вы размонтировали их заранее.