it-swarm-eu.dev

Máme v systému Linux zpět?

Přejmenoval jsem několik souborů v jednom dávkovém skriptu. Existuje způsob, jak vrátit zpět změny, aniž byste je museli přejmenovat zpět?

Poskytuje Linux nějaký nativní způsob undoing?

55
Lazer

Linux (stejně jako ostatní odvětví) nativně nenabízí funkci zpět. Filozofie je, že pokud je pryč, je pryč. Pokud to bylo důležité, mělo to být zálohováno.

Existuje souborový systém Fuse, který automaticky udržuje kopie starých verzí: copyfs , k dispozici ve všech dobrých distribucích. To samozřejmě může využívat spoustu zdrojů.

Nejlepší způsob ochrany před takovými nehodami je použití systému pro správu verzí (cvs, Bazaar, darcs, git, Mercurial, Subversion, ...). Naučit se trochu času, ale ve střednědobém a dlouhodobém horizontu se vyplatí.

Bohužel ne.

17
postfuturist

Ne, v žádném Unixu není žádné kouzelné vrácení. Unix předpokládá, že víte, co děláte. Pro zrušení podpory použijte VCS (váš textový editor jej pravděpodobně také zabudoval).

Většina souborových systémů nemá schopnost to dělat transparentně.

Obnova strojového času a systému v systému Mac a Windows jsou pouze systémy pro správu zálohy/změny.

10
xenoterracide

V příkazovém řádku není zpět. Příkazy však můžete spouštět jako rm -i a mv -i. To vás vyzve pomocí „jste si jisti?“ před provedením příkazu.

Je také možné přidat alias do spouštěcího skriptu (např. ~/.bashrc nebo /etc/bash.bashrc):

alias remove='rm -i'
alias move='mv -i'

Úpravy: na základě níže uvedených návrhů jsem odstranil svou radu, abychom přezdívali výchozí příkazy. Místo toho nyní zavádí nové příkazy).

8
vdboor

Důvod, proč systémy Linux/Unix nemají obnovené prameny, vyplývá ze způsobu, jakým většina souborových systémů ukládá své informace. Všechny meta-informace o souboru jsou uloženy na přední straně disku s odkazy na inody na zbytku disku. Většina souborových systémů obvykle přiděluje 10 bloků souboru v této oblasti. Prvních 7 se týká prvních 7 inodů. 8. a 9. přejděte na seznamy inodů (dvojnásobně spojené bloky) a 10. přejděte na seznam seznamů seznamů (trojitě propojené bloky). To se liší od systému souborů k systému souborů (ext4, jfs, xfs atd.), Ale tyto seznamy bloků mohou obvykle řešit velikosti souborů kdekoli od 2 GB do několika TB.

Ale protože všechny tyto informace jsou uloženy na přední straně disku, když je soubor vymazán, neexistuje způsob, jak odkazovat inody na disku na to, k čemu metadata, ke kterým patří, patří. Naproti tomu FAT32 a NTFS skutečně ukládají některé informace záhlaví se samotnými soubory, což usnadňuje identifikaci souboru, do kterého soubor bloků patří (pokud tento prostor dosud nebyl získán novějšími soubory). Když pracujete v Linuxu, když něco vymažete, je téměř vždy první věcí, kterou je třeba okamžitě přepsat novými daty kvůli efektivitě.

4
djsumdog

Jedna věc, kterou ráda přidám do svého .bashrc, je funkce kopírování a odstraňování. Něco jako:

cprm(){
    cp -p $1 ~/deleted/$1
    rm $1
}

Ale musíte se dostat do zvyku psaní cprm ne rm.

Pokud máte omezený prostor na disku, budete samozřejmě muset udržovat horní část odstraněné oblasti.

2
Deano

Pokud opravdu chcete zrušit funkci, použijte ovládání zdroje. Subversion skutečně funguje velmi dobře na jednom počítači uživatele. Používám jej k ovládání všech svých osobních souborů v domácím systému. Vypadá to jako zbytečné, až do katastrofy, nečestného skriptu nebo překlepů na příkazovém řádku.

2

GitFS je systém souborů založený na pojistkách, který automaticky počítá diffs mezi verzemi a umožňuje jejich obnovení/prohlížení.

Webová stránka: https://www.presslabs.com/gitfs

Dokumenty: https://www.presslabs.com/gitfs/docs/usage/

1
test30