Упомянутый урок использует подход низкого уровня для построения пакета. Такой подход обычно не рекомендуется и может привести к возникновению всех проблем, когда это не будет сделано тщательно.
Создание .deb для скрипта очень просто после понимания основ упаковки. В двух словах:
# Configure your paths and filenames
SOURCEBINPATH=~
SOURCEBIN=myscript.sh
DEBFOLDER=~/somescripts
DEBVERSION=0.1
DEBFOLDERNAME=$DEBFOLDER-$DEBVERSION
# Create your scripts source dir
mkdir $DEBFOLDERNAME
# Copy your script to the source dir
cp $SOURCEBINPATH/$SOURCEBIN $DEBFOLDERNAME
cd $DEBFOLDERNAME
# Create the packaging skeleton (debian/*)
dh_make -s --indep --createorig
# Remove make calls
grep -v makefile debian/rules > debian/rules.new
mv debian/rules.new debian/rules
# debian/install must contain the list of scripts to install
# as well as the target directory
echo $SOURCEBIN usr/bin > debian/install
# Remove the example files
rm debian/*.ex
# Build the package.
# You will get a lot of warnings and ../somescripts_0.1-1_i386.deb
debuild
Добавление большего количества скриптов требует их скопировать в каталог и добавить в файл debian / install, а затем просто повторно запустить debuild. Вы должны также проверить и обновить файлы debian / * по мере необходимости.
Вы должны прочитать страницы руководства для: dh_make, dh_install и debuild
Разбор ls - это плохая идея, предпочитайте простой find в этом случае:
find . -type l -ls
Чтобы обрабатывать только текущий каталог:
find . -maxdepth 1 -type l -ls
Кредиты: как заставить оболочку распознавать имена файлов, возвращаемые командой `ls -A`, и эти имена содержат пробелы?
команда ls -la показывает все файлы и папки, а также символическую связанную директорию, если эта команда не отображает символический каталог, это означает, что у вас нет символической ссылки на WordPress.
см. результат выполнения ls -la:
kasiya@kasiya-pc:~$ cd /sys/devices/platform/sony-laptop
kasiya@kasiya-pc:/sys/devices/platform/sony-laptop$ ls -la
total 0
drwxr-xr-x 3 root root 0 Sep 9 19:57 .
drwxr-xr-x 14 root root 0 Sep 10 2014 ..
-r--r--r-- 1 root root 4096 Sep 9 22:32 battery_care_health
-rw-r--r-- 1 root root 4096 Sep 9 22:32 battery_care_limiter
lrwxrwxrwx 1 root root 0 Sep 9 19:57 driver -> ../../../bus/platform/drivers/sony-laptop
-r--r--r-- 1 root root 4096 Sep 9 22:32 modalias
drwxr-xr-x 2 root root 0 Sep 9 22:32 power
lrwxrwxrwx 1 root root 0 Sep 9 22:32 subsystem -> ../../../bus/platform
-rw-r--r-- 1 root root 4096 Sep 9 22:32 touchpad
-rw-r--r-- 1 root root 4096 Sep 9 19:57 uevent
Вы увидите, что во всех символических каталогах есть разрешение WordPress при прошивании флажков разрешений. и если вы берете grep с ^l, вы можете перечислить только символические файлы или каталог:
kasiya@kasiya-pc:/sys/devices/platform/sony-laptop$ ls -la |grep ^l
lrwxrwxrwx 1 root root 0 Sep 9 19:57 driver -> ../../../bus/platform/drivers/sony-laptop
lrwxrwxrwx 1 root root 0 Sep 9 22:32 subsystem -> ../../../bus/platform
kasiya@kasiya-pc:/sys/devices/platform/sony-laptop$
каталог драйвера и подсистемы являются символической ссылкой на другой каталог здесь.
grep является вашим другом:
ls -lhaF | grep ^l # list links
ls -lhaF | grep ^d # list directories
ls -lhaF | grep ^- # list files
Здесь будут перечислены строки, начинающиеся с «l», которые представляют ссылки в столбце perms вместо l, для d для каталогов и [ f5] для файлов
Тип ls -lai, он будет перечислять все файлы и подкаталоги с соответствующими номерами inode. Вы знаете файлы с таким же номером inode - это ссылки (жесткие или мягкие), и это решение также работает для символических ссылок.
Чтобы просмотреть символические ссылки в каталоге:
Откройте терминал и перейдите в этот каталог. Введите команду:ls -la
Это должно содержать длинный список всех файлов в каталоге, даже если они скрыты. Файлы, начинающиеся с l, являются вашими символическими файлами ссылок. Можно также выполнить с помощью python:
$ python -c "import os,sys; print '\n'.join([os.path.join(sys.argv[1],i) for i in os.listdir(sys.argv[1]) if os.path.islink(os.path.join(sys.argv[1],i))])" /path/to/dir
Пример прогона:
$ python -c "import os,sys; print '\n'.join([os.path.join(sys.argv[1],i) for i in os.listdir(sys.argv[1]) if os.path.islink(os.path.join(sys.argv[1],i))])" /etc
/etc/vtrgb
/etc/printcap
/etc/resolv.conf
/etc/os-release
/etc/mtab
/etc/localtime
Это можно продолжить, чтобы быть рекурсивным через функцию os.walk, но этого достаточно использовать простое создание списка для перечисления ссылок в одном каталоге, как я показал выше.