Linux-Ubuntu / я хочу видеть файлы в каталоге и количество файлов

How to correctly install Git 2.17.1 from source on CentOS 7

Возможно, соберите пакеты "2.17.1" и установите необходимые пакеты с помощью yum.

Исходный пакетftp://ftp.icm.edu.pl/vol/rzm6/linux-fedora/linux/updates/28/Everything/SRPMS/Packages/g/git-2.17.1-2.fc28.src.rpm

Настройка$HOME/rpms/https://www.linuxquestions.org/questions/linux-software-2/need-rpm-package-for-php-version-5-2-7-and-up-on-redhat-5-1-a-766486/#13

$ rpm -i git-2.17.1-2.fc28.src.rpm

# yum install libcurl-devel libsecret-devel pcre2-devel tk cvs cvsps \ 
httpd mod_dav_svn subversion subversion-perl perl-DBD-SQLite perl-CPAN

# cpan
cpan[1]> install IO::Pty
cpan[2]> install Test::More


$ cd rpms/SPECS/
$ rpmbuild -bb git.spec
.
Wrote: /home/knudfl/rpms/RPMS/x86_64/git-2.17.1-2.el7.x86_64.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/git-all-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/x86_64/git-core-2.17.1-2.el7.x86_64.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/git-core-doc-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/git-cvs-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/x86_64/git-daemon-2.17.1-2.el7.x86_64.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/git-email-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/gitk-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/gitweb-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/git-gui-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/git-p4-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/perl-Git-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/perl-Git-SVN-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/x86_64/git-subtree-2.17.1-2.el7.x86_64.rpm
Wrote: /home/knudfl/rpms/RPMS/x86_64/git-svn-2.17.1-2.el7.x86_64.rpm
Wrote: /home/knudfl/rpms/RPMS/x86_64/git-debuginfo-2.17.1-2.el7.x86_64.rpm

16 упаковокhttps://drive.google.com/drive/folders/1PRxoicjzHWunFZW-hhXT9JsFk_PQIoLs?usp=sharing

0
16.05.2020, 18:52
2 ответа

Здесь не нужно find.

#!/bin/bash

# nullglob: make patterns that don't match expand to nothing
# dotglob: also expand patterns to hidden names
shopt -s nullglob dotglob

names=( * )    # all names in the current directory
regular_files=()

# separate out regular files into the "regular_files" array
for name in "${names[@]}"; do
    # the -L test is true for symbolic links, we want to skip these
    if [[ -f $name ]] && [[ ! -L $name ]]; then
        regular_files+=( "$name" )
    fi
done

printf 'There are %d names (%d regular files)\n' "${#names[@]}" "${#regular_files[@]}"
printf 'The regular files are:\n'
printf '\t%s\n' "${regular_files[@]}"

Или с помощью zsh,

#!/bin/zsh

# "ND" corresponds to setting nullglob and dotglob for the pattern
names=( *(ND) )
regular_files=( *(.ND) )   # "." selects only regular files

printf 'There are %d names (%d regular files)\n' "${#names[@]}" "${#regular_files[@]}"
printf 'The regular files are:\n'
printf '\t%s\n' "${regular_files[@]}"
0
28.04.2021, 23:13

Находка верна, но вам не следует анализировать ls, даже для того, чтобы найти количество файлов. Поскольку у вас есть поиск GNU, выберите

#!/bin/bash
echo "Files:"
find. -maxdepth 1 -type f

echo "Number of files:"
find. -maxdepth 1 -type f -printf. | wc -c

Второй findпечатает .для каждого файла, а затем wcподсчитывает количество точек.

1
28.04.2021, 23:13

Теги

Похожие вопросы