Рассмотрение некоторых других вопросов привело меня к небольшому скрипту, который решает проблему:
#!/bin/bash
shopt -s globstar
for f in **/*.php; do
cloc --strip-comments=BAK --original-dir "${f%.*}.php"
mv "${f%.*}.php.BAK" "${f%.*}.php"
done
Это, несомненно, можно оптимизировать дальше.
Хотя это можно сделать, скопировав эти каталоги в/home
(с помощьюmv
)и создав символические ссылки (с помощью ln -s
), это не очень хорошая идея.
Симлинкирование каталогов верхнего -уровня, которые не предназначены для использования в качестве символических ссылок, обычно приводит к трудным проблемам отладки -–-, поскольку многие приложения не ожидают такого поведения. Например, если приложение использует O_NOFOLLOW
из соображений безопасности при открытии файла, то это приложение не будет работать при создании символических ссылок. Я видел множество ситуаций, когда это происходило, и сопровождающие дистрибутивов (, не говоря уже об авторах программного обеспечения ), как правило, не сочувствуют проблемам, возникающим в этом сценарии, поскольку он не поддерживается.
В общем, было бы лучше либо иметь /
, /home
, /var
, /tmp
и /srv
на одном разделе и сделать его расширяемым с помощью LVM, либо создать отдельные разделы для вещи, которые вам нужны отдельно.
Если вы уже используете LVM и хотите создать дополнительные логические тома как часть той же группы томов, которую вы уже используете, вы можете найти группу томов с помощью sudo vgdisplay -c | cut -b3- | cut -d: -f1
, а затем создать дополнительные логические тома следующим образом:
SIZE=100m # for example
DIRNAME=/srv # for example
VOLGROUP=$(sudo vgdisplay -c | cut -b3- | cut -d: -f1)
sudo lvcreate -L $SIZE -n $(basename "$DIRNAME") $VOLGROUP
sudo mkfs.ext4 /dev/mapper/$VOLGROUP-$(basename "$DIRNAME")
sudo mount /dev/mapper/$VOLGROUP-$(basename "$DIRNAME") /mnt
sudo cp -a $DIRNAME/* $DIRNAME/.* /mnt
sudo umount /mnt
# Add the new /dev/mapper/$VOLGROUP-$DIRNAME device pointing to
# $DIRNAME to /etc/fstab
Вы должны сделать это в однопользовательском режиме, а затем перезагрузиться.