Есть много способов сделать это. Например, если вы уверены, что ваши имена файлов не содержат символов новой строки, вы можете сделать:
$ ls | cat -n
1 a.sh
2 b.sh
3 c.sh
4 d.sh
Более безопасный способ работы с именами файлов, содержащими символы новой строки или любые другие странные символы:
$ c=0; for file in *; do ((c++)); printf '%s : %s\n' "$c" "$file"; done
1 : a.sh
2 : b.sh
3 : c.sh
4 : d.sh
Чтобы понять, почему последние два являются лучше создать имя файла, содержащее символы новой строки:
$ touch 'a long file name'
$ touch 'another long filename, this one has'$'\n''a newline character!'
Теперь сравним результат двух подходов:
$ ls | cat -n
1 a long file name
2 another long filename, this one has
3 a newline character!
4 a.sh
5 b.sh
6 c.sh
7 d.sh
Как вы можете видеть выше, синтаксический анализ ls
(что обычно является плохой идеей) приводит к имя файла с новой строкой рассматривается как два отдельных файла. Правильный вывод:
$ c=0; for file in *; do ((c++)); printf '%s : %s\n' "$c" "$file"; done
1 : a long file name
2 : another long filename, this one has
a newline character!
3 : a.sh
4 : b.sh
5 : c.sh
6 : d.sh
Как указывает @Vikyboss в комментариях, вышеприведенное решение оболочки установит переменную $ c
, которая будет сохраняться после выхода из цикла. Чтобы этого избежать, вы можете добавить в конце unset c
или использовать еще один подход. Например:
$ perl -le 'for(0..$#ARGV){print $_+1 ." : $ARGV[$_]"}' *
1 : a long file name
2 : another long filename, this one has
a newline character!
3 : a.sh
4 : b.sh
5 : c.sh
6 : d.sh
Вы можете использовать ldconfig
для поиска библиотек и их соответствующих номеров версий. Что-то вроде этого должно работать:
ldconfig -v | grep [Library Name]
При необходимости запустите его как root (sudo ). Замените [Имя библиотеки] любой библиотекой, которую вы хотите найти, например :libgeos/geos/gdal/etc. В качестве альтернативы ldconfig -v | more
и поиск по ним дадут вам информацию обо всех библиотеках.
Это должно дать вам список всех версий этой конкретной библиотеки. Пожалуйста, прочтите справочную страницу ldconfig , чтобы получить дополнительную информацию.
Вы также можете использовать инструменты, встроенные в R
, чтобы понять это. На этой странице руководства по R содержится много подробностей о том, как составить список установленных пакетов, связанных с R
. По моему ограниченному пониманию, вы должны иметь возможность в консоли R
запустить следующее, чтобы выяснить установленные библиотеки:
installed.packages(lib.loc = NULL, priority = NULL,
noCache = FALSE, fields = NULL,
subarch =.Platform$r_arch,...)