パッケージマネージャがそのコマンドがインストールされているパッケージを確認できないということはどういう意味ですか?
私がするとき -
$ sudo dpkg -S /usr/bin/passwd
passwd: /usr/bin/passwd
出力を見ると、パッケージからインストールされているとpasswd
推測できます。passwd
ただし、- ftp
、bash
などのcat
いくつかのコマンドでは、ls
ソース情報はパッケージに関する情報を提供しません。次の出力はに適用されますが、他のコマンドなどの出力はbash
まったく同じです。ftp
cat
ls
$ sudo dpkg -S /usr/bin/bash
dpkg-query: no path found matching pattern /usr/bin/bash
それで、上記の出力が何を意味するのか混乱しています。これらのコマンドはシェルまたはカーネルに組み込まれていますか? (コマンド/utilsがcoreutilsパッケージの一部でls
あり、man lsまたはcatがこれを確認したため、そうではありません。)cat
それでは、パッケージマネージャはどういう意味ですか?コマンドがインストールされているパッケージを確認できません。
観察上の注意:
$ sudo apt list coreutils
Listing... Done
coreutils/focal,now 8.30-3ubuntu2 amd64 [installed,automatic]
そして
apt show coreutils | grep -Ew "ls|cat"
タブレット
特に、このパッケージには
以下が含まれます。猫chcon chgrp chmod chown chroot cksum comm cp csplit カット日 dd df dir dircolors dirname du echo env 拡張 expr 要素 false Flock fmt 縮小グループ ヘッダーホスト ID インストール 結合リンク ln ログ名エルエスmd5sum mkdir mkfifo mknod mktemp mv nicenl nohup nproc numfmt
編集 - Stephensの答えに従います。 (別途質問でも投稿しました -Linuxでハードリンクを効果的に追跡する方法は?
ソフトリンクは処理が簡単ですが、ハードリンクは元のファイルを簡単に追跡できません。
$ ll -i /usr/bin/bash /bin/bash
1310813 -rwxr-xr-x 1 root root 1183448 Jun 18 21:14 /bin/bash*
1310813 -rwxr-xr-x 1 root root 1183448 Jun 18 21:14 /usr/bin/bash*
上記は予想通りです。素敵ですね。
$ find / -samefile /bin/bash 2>/dev/null
/usr/bin/bash
もう一度期待どおり - 問題ありません。
find / -samefile /usr/bin/bash 2>/dev/null
/usr/bin/bash
これはいいえクール。これで組織ファイルをどのように追跡できますか?
奇妙さ - 以下も役に立ちません。
$ find / -inum 1310813 2>/dev/null
/usr/bin/bash
ベストアンサー1
dpkg-query: no path found matching pattern /usr/bin/bash
パッケージ/usr/bin/bash
(ドロップ)配送がないことを意味します。dpkg -S
代わりに、シンボリックリンクなどを無視して配送されたパッケージコンテンツを検索します。
dpkg -S /bin/bash
パッケージが出荷されたので見つけることができます/bin/bash
。
また見なさい:
$ dpkg -L bash|grep bin/bash
/bin/bash
/usr/bin/bashbug
で始まるとcat
同様に適用されます。この場合、コマンドを検索する最善の方法は、プレフィックス付きのコマンドを見つけることです。ls
/bin
bin/
$ dpkg -S bin/bash
bash: /usr/bin/bashbug
bash: /bin/bash
ftp
はいしかし、/usr/bin
それを見つけるには、次を使用してくださいreadlink
。
$ dpkg -S $(readlink -f /usr/bin/ftp)
ftp: /usr/bin/netkit-ftp