くだらねえ質問はここに書き込め! Part 235
■ このスレッドは過去ログ倉庫に格納されています
まずは2ch-Linux-Beginnersを読みましょう。
いろいろとまとめられているので(・∀・)イイ!!
http://www12.atwiki.jp/linux2ch/
読んでも解決しなかったら、質問を書きこむ前にここを読もう。
http://www12.atwiki.jp/linux2ch/?About
質問に対して答えてもらったら、お礼よりも、結果報告。
過去ログ検索
Google検索
https://www.google.com/search?hl=ja&as_q=検索語句&as_sitesearch=2ch.net%2Ftest%2Fread.cgi%2Flinux%2Fhttps://www.google.com/search?hl=ja&as_q=検索語句&as_sitesearch=5ch.net%2Ftest%2Fread.cgi%2Flinux%2F
※前スレ
くだらねえ質問はここに書き込め! Part 234
http://mao.5ch.net/test/read.cgi/linux/1542376726/ 200GBほどあるディレクトリを圧縮したいのですが
どのようにするのが適切でしょうか
そのままひとまとめにするより面倒でも小分けにしたほうが良いですか?
メインメモリは4GBで
HDDにも空きは200強のGBしかありません https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/
moreだけ最新版を入れたい。prefix先は/usr/localで。
moreだけコンパイルしてインストールする方法ありませんか? >>1
乙
>>2
圧縮した後どうしたいかによるんでは
元のファイルを削除してスペース節約?
>>3
make more
> $ configure
> ...
> Type 'make' or 'make <utilname>' to compile.
インストールは適当に手動コピーすればいいんじゃないでしょうか
ところでmoreの最新版を使いたい理由って何でしょう
最近のmoreで何が変わったのかちょっと興味があります >>4
> > Type 'make' or 'make <utilname>' to compile.
make more とか make text-utils とかやってみたけど通らんな
<utilname> って何を指定すればいいんだろ >>4
>make more
>> Type 'make' or 'make <utilname>' to compile.
moreはコンパイル出来ました。
>ところでmoreの最新版を使いたい理由って何でしょう
less にない機能が使いたい。lessと入力ファイルの組合せが悪いかもしれず。 >>5
moreはコンパイル出来ましたが、
sys-utils/ipcrm.cで通らないです。make ckeckがさいごまで行かないのが痛い >>5
すまん、./configure に --enable-more つけたらいけた >>7
「通らない」って、具体的にどんなエラーになるの? more のコンパイル通ってるなら
実行ファイルを手動コピーでいいんじゃないか
うちではそれで動いたよ sys-utils/ipcrm.c:246:17: error: variable has incomplete type 'struct seminfo'
struct seminfo seminfo;
など。 $ configure
$ make
$ make check で>>6
$ configure
$ make more でmoreコピーでインスト出来ました。
more使ってしたいことを手探ります。皆さんコメ有難うございます。 >>11
https://github.com/karelzak/util-linux/issues/584
同様の事例があった
ちゃんと読んでないけど
moreだけ欲しいならipcrmをコンパイルする必要はないでしょう 「何もしない」というコマンドはありませんか?
$ cat hoge.sh
#!/bin/sh -e
if [ "$1" = "hoge" ]
then
echo "hoge"
else
#echo "ここがエラーになるので「何もしない」を入れたいのです"
fi
一応候補として 'true' や ':' を試してみましたが
これでいいのかわかりません >>13
./configure --disable-use-tty-group --disable-makeinstall-chown --enable-all-programs --disable-ipcrm --disable-ipcs --disable-rename
これでmakeOK。 >>15
だったら
--disable-all-programs --enable-more
でよさそう ていうかもっと言うとそういう状況なら
test "$1" = "hoge" && echo "hoge"
ってやったほうがifとか使わずに簡潔かつ明瞭に書ける >>18
else 外せない状況だから聞いてるんじゃないの? Centos6で自作メールサーバを作ってThunderbirdでの接続の保護なしで通常のパスワードでの送信はできたのですがSSLの設定をしてから送信時に送信エラーが出ますポートは空いているのですが助けてください エラー書かないと助けられないが
証明書入ってないとかじゃなくて? >>22
REBOOTしたら治りましたお騒がせしました いま構築してるのなら
いいかげん7にした方がいいんじゃないの >>20
elseの場合になにもしないのに,
else節を省略できない状況なんてある? >>25
「できない」じゃなくて「したくない」状況ならあるね
a) スクリプトのデバッグ中にelseまで消すのが面倒
→エディタのコメントアウト機能を": #"にすると少し幸せになれるかも
b) マクロでelseの中身を生成するときに中身が空の場合と分けたくない
→この例は実際にconfigureスクリプトの中で見られる >>27
あー。a)に関してはそれくらい我慢しろよとは思うが
b)に関しては納得だわ。俺はそういうマクロを書いたことがないが
しかしelseのあるなしでマクロを書き分けるのは煩雑だしバグが紛れ込みやすくなるな。
そういう場合は:やtrueを使うしかないか。 sudo apt-get install libapt-inst1.5
したら
警告: 以下の不可欠パッケージが削除されます。
何をしようとしているか本当にわかっていない場合は、実行してはいけません!
apt libapt-pkg5.0 (apt のため)
てでたけど実行したら
apt 出来なくなったんだがこれどうすればいいの?はぁ。。。 その手の警告メッセージが「押すなよ!絶対押すなよ!」のような振りではない事を理解した上でクリーンインストール ヘーキヘーキ
必要なものは全部自分でソースからビルドすればaptなんていらねぇんだよォン >>33
which -a apt
which -a apt-get
で本当にないか探して、ログインし直しても駄目ならDebianのパッケージを探してきて入れればいいんじゃないの sudo dpkg -r libapt-inst1.5
sudo dpkg -i libapt-pkg5.0_1.4.9_armhf.deb
sudo dpkg -i apt_1.4.9_armhf.deb
これでいちおう復活いけました。サンクス!
完全復活ですかコレで?
他にすることないですか? su
su -
普段使いするなら
どちらが安全ですか? >>39
それを普段使いするくらいなら root ログインでいいのでは。 find . \( -iname "*.jpg" -o -iname "*.txt" \)
findの複数パターンってこんなんだけど修正って無理?
jpg|txtや{jpg,txt}を許可するとかせめてエスケープ外すとか >>42
GNU のですとこう書けるみたいです
find . -iregex ".*\.\(jpg\|txt\)" ubuntu って debian の一つじゃないの?
色々読んでると別に扱われてること多い気がするけど 正規表現で教えてください。
find . -name "*.txt" -print0 | perl -pe 's/\.txt\0/\0/g' | xargs -0 -I% mv %.txt %.html
perlの箇所で、\0/\0の意味を教えてください。
また、調べ方も分かりません。perlの正規表現でしょうか? >>45
find(1)の-print0の部分を読むのです。 >>40
パッケージリホジトリのアップデートする程度でもroot必要なのに
普段使いしないのか? >>45
ひとかたまりじゃなくて
ただ \0 と / が並んでるだけ
\0はヌル文字(¥0なら見覚えあるのでは?)
/ は範囲内全体置き換えの 's/置換対象/置換後/g' という表現の一部 >>48
アップデートやアップグレードは自動化できるけど
あくまで例であって
root必要な場面なんていくらでもあるだろ
ユーザー追加編集したりアプリのインアンスコとか >>46
man findや日本語訳も読んだけど今一よくわからないです。
ttps://linuxjm.osdn.jp/html/GNU_findutils/man1/find.1.html
>-print0
真を返す。パス付きのファイル名を標準出力に表示し、
各ファイル名の後ろに (-print が改行文字を付けるのとは違って)
ヌル文字を追加する。 このアクションを使えば、find の出力を処理する
プログラムが、改行文字などのホワイトスペースを含むファイル名を
正しく解釈できるようになる。 このアクションは、xargs の -0 オプションに呼応している。
>>49
>\0はヌル文字(¥0なら見覚えあるのでは?)
ヌル文字が何故必要かわかりません。
一番良いのはマニュアルから必要性を読めることですが、man xargsからも見つけていません。 >>52
塗る文字区切りだからだよ
区切り文字がないと区別つかんやろ >>52
\0は文字列の最後(終わり)を示す番兵
番兵 文字列とかでぐるぐるすると役割が分かる。
日本語の文の最後を示す"。"な物
人は"。"なくても内容等から文の最後が分かるが、文の内容を理解しない機械は"。"
で一文が終わったと判断する >>53
>>54
おぼろげに必要性がわかった気がしてきた。 >>52
man xargsで「-0」で検索すれば書いてあるよ >>44
Debianをベースに作った、Debianとは別のもの >>52
man find の「用例」の最初の二つが参考になるかも。 >>39
su と su - に安全性の違いってある?
状況に応じて使い分ければいいだけでは? >>51
なぜ伝わらない
普段使ってる中でroot権限が必要な場面なんていくらでもあるだろう >>52
前スレで見た気がする
$ touch "hoge
"
とかやらかして云々
ファイル名に改行が含まれてるのが混じってたら
改行区切りでは使えないからな >>61
root権限が必要 ≠ suコマンドを使う 一般的に、普段使いで root権限が必要な場面なんて無いと思います。
なお、Maintainer・Latester・apt-getter はこの限りではありません。
(個人の感想です) >>55
この界隈は空白付きパスの扱いが苦手ってこと
$ touch foo bar.txtだと分割されてfooとbar.txtができるから
この場合は"foo bar.txt"やfoo\ bar.txtで分割は回避できる
findやxargsの場合は-print0や-0で対策してると
後root化するならsudo suでいいってばっちゃが zsh使いだしてからfindもxargsも使わなくなった
zshない環境でやらんといけなくなったときに素人丸出し状態になって焦るw findやxargsの代わりにzshだとどうやるの? USBパーティション起動のKaliがアホほど重い… >>52
たぶん、ヌル文字は、区切り文字として使うのだろう
「a b」みたいな半角空白を含む文字列を、1つとして扱いたい場合に、
半角空白が区切り文字だと、2つに扱われてしまう
そういう場合に「a b」の直後に、ヌル文字を付け足して、
ヌル文字を区切りに設定すると「a b」が1つに扱われる shredコマンドってファイルしか削除できないの?
フォルダごと削除出来るオプションが見当たらんのですが >>78
ファイルが実際にHDDなどに物理状態として存在している
(ことが多い; /proc以下のファイルとかはまた別の話)のに対して
ディレクトリはHALやカーネル低レイヤではなく
もっと高位の抽象化であるファイルシステムの上で用意されている
仮想的なものだから,shredコマンドをかける意味がないでしょ。 >>79
ファイル名もシュレッドして欲しいと言うのはあるかも
まあコマンドレベルじゃ無理でファイルシステムに組み込むしかないと思うが >>80
それをできると勘違いしないようにrecursiveオプションが用意されてないというわけかな >>81
それはどっちかって言うと危険だからじゃね?
どうしてもやりたきゃfind+xargs+shredでできるし
まあ作成者に聞かないとホントのところはわからんが まあ作者に訊かないと真相は分からないのはもちろんそうとして。
俺はshredコマンドにディレクトリに対する操作が用意されていない理由は>>79,
ディレクトリに対して操作したいなら>>82の方法を採るのが一番良いと思った。
素人に毛が生えた程度の人間の意見だけどw ディレクトリに対するshredの意味が>>80と>>82で違うことは理解してる? >>86
rm -rf / なんかも含めて今更わざわざ記事にするような内容かね
しかもServerとDesktop版で2つの記事にしてるし その今更を知らない奴もいるってことを知れてよかったじゃないか
俺自身もそこでshredを知ったからな ディレクトリとファイルの「抽象度」って同じじゃね?
どっちもファイルシステムの上にあるじゃん。 /usr/local
って基本的にはどんなものが入るところ? /bin lsやcp辺りのないと困る奴
/sbin fsckやmkfs辺りのシステム操作系
/usr/bin パッケージ管理で入れた奴
/usr/sbin パッケージ管理で入れたシステム操作系
/usr/local/bin 自分でビルドした奴
/usr/local/sbin 自分でビルドしたシステム操作系
$HOME/bin 自作か拾ったスクリプト
ただ今は/usr/binに集約して/binはただのリンクだとかなんとか
/optではProgram files\みたいにプログラム単位で管理するけどなんでこれが推奨されないのか
それをやったのがgoboLinuxなんだろうけど > /optではProgram files\みたいにプログラム単位で管理するけどなんでこれが推奨されないのか
PATHがクソ長くなるからだよ
PATHだけじゃない。ドキュメントとか、あちこちにバラけてるよりも
一つの決まったディレクトリにある方が、manとかinfoはすぐに検索できるだろ?
C言語用のヘッダファイルだって一箇所にまとまっていたほうが良いし。
つまりは考え方が違うだんよ。
Linuxはそういうパッケージまで含めて一つのシステムでありOSなんだよ
Linuxにはアプリという概念がなかった
WindowsのDLLがsystem32とかにあるのと同じ。
ただしWindowsはOSの構成要素がOSとして機能する必要最小限なものにくらべて、
Linuxはパッケージすべてが構成要素。例えばLibreOfficeなんかも含めて。
だから今後、Linuxはパッケージを減らしていくと思うよ。
そしてアプリはOSのパッケージ管理システムとは別の方法でインストールするようになる でもsnapとかflatpakとかappimageとかnixとか汎用パッケージマネージャー自体が増えたら意味ないのでは
船頭が増えても結局元の木阿弥だ >>92
笑ったよ。でも、なんか言い得て妙って感じだな ■ このスレッドは過去ログ倉庫に格納されています