Råkade av misstag radera en drös dokument filer i min surfdator.. undelete

Permalänk
Medlem

Råkade av misstag radera en drös dokument filer i min surfdator.. undelete

Har nästan gett upp, låtit det hela vara i en vecka.. Nån kanske har nått lämpligt tips, som jag inte ens tänkt på.. Filerna jag kastade låg från början på skrivbordet, där vill jag inte ha filer.. En Flyttning skedde från där de ska vara, trodde det var kopiering först.. Man ska inte göra spontana saker efter en dålig natt..

Har kikat på denna tråd ( https://forums.linuxmint.com/viewtopic.php?t=223299 ) och lyckats få en drös av filer i en stor röra, som jag efter många om och men tagit över "ägarskapet på" .. Vilket inte gick på första försöket.. Dessa är flyttade till en undermap i min "disk 2" ..Vissa av dessa försvunna filer skiter jag i, andra har jag kopior på i min urgamla Windosdator som aldrig är uppkopplad mot nätet..

Gjorde först mina försök med "Test Disk", lyckades inte få detta att funka.. PhotoRec var det program som gav någon form av resultat.. Har försökt med kommandot Grep , för att söka inuti filerna.. Tar flera timmar för datorn att plöja igenom trädet.. De flesta filer jag saknar är av typen Libre Office dokument.. Flera av de jag hade sparat i .DOC eller .XLS lyckades jag få fram.

Nån som har något klokt råd..

Kör Linux Mint 19.2 med Mate miljön

Visa signatur

Har jobbat som Serviceingenjör Digital Systems Services som blev uppköpt av Compaq, skruvar nu mest för egna behov.. Ägnar mig fotografi istället..
..Använder ibland när jag skriver lite ovanliga beskrivningar, jag är ordblind så då blire som det blir i texten ibland! :p

Permalänk
Medlem

hmm R-linux var intressant - samma företag bakom R-studio som är rätt välkänd när det gäller att försöka rädda NTFS-filsystem när de kraschar.

Problemet är att ext4 städar ganska rejält i sin metadata när man raderar filer med överskrivning av inods-referenser och dess extension mot datadelar på disken - finns väldigt lite kvar att leta efter en radering... men fördelen med ext4 är att filernas datadel sällan är fragmenterade eller att de vart fall hänger ihop i stora stycken - till skillnad från NTFS... hittar man filens magic-word (som tex. för jpg') så är det stor chans att få ut den i frisk och komplett skick.

I linux finns ett grundläggande program som heter 'file' som är en av grundmekanismer när det gäller att identifiera filerna och att rätt program körs - oavsett vad extension säger -

File är ett paket som går på en stor antal olika magic word och annat i filerna för att försöka identifiera en fil med ibland ganska så avancerade scriptar för att leta runt efter nyckelord för identifiering av filen även om nyckelorden studsar runt ganska så mycket i filkroppen.

Det finns anledning tex. varför python-script börjar med "#!/usr/bin/python3" som första rad, samma sak med bash och andra skript - det är för att hjälpa 'file' att identifiera rätt så att rätt program körs när man markerat scriptet som exekverbar.

- till skillnad från windows så är inte fil-extension gud som bestämmer om program får köras eller inte, utan det är dess innehåll och rättigheter som inte är beroende av själva namnet.

Jag har inte alls testat, men du kanske kan använda 'file' för att plöja igenom alla anonyma filer som R-linux hittat och den vägen sortera ut filer i olika kategorier för olika program eller dokumentypter i sig.

'file' med '-z' flagga så kan den också kika i olika komprimerade arkiv för filer invändigt i dessa och de flesta office-dokumet både från MS och libre ligger i zip-arkiv - så det kan vara en orsak till att det är så svårt att hitta då de ligger i just zip-arkiv allihopa

Observera att detta är inte program som gör jobbet med en knapptryckning - utan ett verktyg bland flera för att försöka sortera upp messet för att bli lättare att hantera senare

Det handlar om att sortera höstacken många mindre höstackar där innehållet är samma sort i varje hög

Detta är bara en fundering på problemet då jag har en smärtsam minne av havererad NTFS på 2TB med filer och man stod in för fakta med halvlmiljonen anonyma dollar-nummer filer allt liggande i en och samma direktory efter att R-studio hade letat... - och då tänkte jag inte på 'file' i linux som ett av verktygen för att sortera det hela i mer behändiga högar och tex. få bort alla dll. och exe-program...

ett annan program som inte är så dumt när man skall scanna texter i filer som är blandade binärt med textfält är 'strings'

"cat filen_man_vill_analysera | strings | grep nyckelord" så har man en chans att se om textsekvensen man söker finns i filen (dock i ascii och inte mer avancerat kodade ord)

de mera avancerade script-guy använder awk och sed för mer avancerade hantering av strängar för tex letning av filnamn eller filinnehåll - men det är inte helt enkelt att greppa hur det fungerar då det är rätt kryptiskt i hur man skall beskriva i vad dessa skall göra - men extremt kraftfullt om man behärskar det.

Permalänk
Rekordmedlem

Ligger de kvar i papperskorgen ?
Om inte och du har en ssd är det liten chans att de går att återskapa,
Har du en HDD finns det en chansa att de inte är raderade på riktigt i filsystemet men den är lägre efter en vecka än om du omedelbart hade stängt av datorn och försökt rädda filerna.

Visa signatur

R5 5600G, Asus ROG STRIX X470-F Gaming, WD SN850X 2TB, Seasonic Focus+ Gold 650W, Aerocool Graphite v3, Tittar på en Acer ET430Kbmiippx 43" 4K. Lyssnar på Behringer DCX2496, Truth B3031A, Truth B2092A. Har också oscilloskop, mätmikrofon och colorimeter.

Permalänk
Medlem
Skrivet av mrqaffe:

Ligger de kvar i papperskorgen ?
Om inte och du har en ssd är det liten chans att de går att återskapa,
Har du en HDD finns det en chansa att de inte är raderade på riktigt i filsystemet men den är lägre efter en vecka än om du omedelbart hade stängt av datorn och försökt rädda filerna.

Nej, där var första stället jag tittade när misstaget uppdagades..

Ja, det är en HDD ..Började direkt försöka rädda filerna, programmet photorec gav resultat.. Har en så där miljon filer.. Vet inte hur jag ska hitta nålen i höstacken.

Visa signatur

Har jobbat som Serviceingenjör Digital Systems Services som blev uppköpt av Compaq, skruvar nu mest för egna behov.. Ägnar mig fotografi istället..
..Använder ibland när jag skriver lite ovanliga beskrivningar, jag är ordblind så då blire som det blir i texten ibland! :p

Permalänk
Medlem
Skrivet av xxargs:

- till skillnad från windows så är inte fil-extension gud som bestämmer om program får köras eller inte, utan det är dess innehåll och rättigheter som inte är beroende av själva namnet.

- Känner till att extension inte är så viktigt för linux.. mer flaggor och annat. -

Skrivet av xxargs:

Jag har inte alls testat, men du kanske kan använda 'file' för att plöja igenom alla anonyma filer som R-linux hittat och den vägen sortera ut filer i olika kategorier för olika program eller dokumentypter i sig.

- Känner inte till det programmet, eller hur man skriver i kommandotolken. -

Skrivet av xxargs:

'file' med '-z' flagga så kan den också kika i olika komprimerade arkiv för filer invändigt i dessa och de flesta office-dokumet både från MS och libre ligger i zip-arkiv - så det kan vara en orsak till att det är så svårt att hitta då de ligger i just zip-arkiv allihopa

- Att de var zippade filer är nytt för mig -

Skrivet av xxargs:

ett annan program som inte är så dumt när man skall scanna texter i filer som är blandade binärt med textfält är 'strings'

"cat filen_man_vill_analysera | strings | grep nyckelord" så har man en chans att se om textsekvensen man söker finns i filen (dock i ascii och inte mer avancerat kodade ord)

de mera avancerade script-guy använder awk och sed för mer avancerade hantering av strängar för tex letning av filnamn eller filinnehåll - men det är inte helt enkelt att greppa hur det fungerar då det är rätt kryptiskt i hur man skall beskriva i vad dessa skall göra - men extremt kraftfullt om man behärskar det.

Behöver ganska utförlig beskrivning hur det görs, är inte lika djupt kunnig i linux som jag var på Windows XP & W2K ..

Visa signatur

Har jobbat som Serviceingenjör Digital Systems Services som blev uppköpt av Compaq, skruvar nu mest för egna behov.. Ägnar mig fotografi istället..
..Använder ibland när jag skriver lite ovanliga beskrivningar, jag är ordblind så då blire som det blir i texten ibland! :p

Permalänk
Rekordmedlem
Skrivet av vilzen:

Nej, där var första stället jag tittade när misstaget uppdagades..

Ja, det är en HDD ..Började direkt försöka rädda filerna, programmet photorec gav resultat.. Har en så där miljon filer.. Vet inte hur jag ska hitta nålen i höstacken.

Du har alltså en mapp med en massa filer som du inte vet vad det är för typ ? du skulle ju kunna läsa filheadern för att kolla vad filerna innehåller och gå igenom de intressant filtyperna mer noggrant, kanske finns nått färdigt verktyg eller script för att göra det för nån borde redan ha behövt göra nått liknade.

Visa signatur

R5 5600G, Asus ROG STRIX X470-F Gaming, WD SN850X 2TB, Seasonic Focus+ Gold 650W, Aerocool Graphite v3, Tittar på en Acer ET430Kbmiippx 43" 4K. Lyssnar på Behringer DCX2496, Truth B3031A, Truth B2092A. Har också oscilloskop, mätmikrofon och colorimeter.

Permalänk
Medlem

Det är just det som 'file' gör - kategoriserar filtypen vilken dokumenttyp/binär och eventuellt program som skall användas - den kan också rapportera i mime-format.

'file' är väldigt mycket mer avancerad än att gå på några enstaka magic word för att gissa vilken fil det kan tänkas tillhöra och kan titta både i början, slutet eller mitten av filen för att klassificera denna - alla vanliga stora linuxdistar har det installerat default även om jag sett bantade OS som i köpenas inte har det.

till TS:

I det läget som du är nu så finns det inget program som kommer att lösa detta med ett knapptryck, utan använd 'man file' eller 'file --help' kommer programmet att göra en kort en lista vad den kan göra - för exempel och alternativa vägar får man använda google.

Bara att prova sådan exempel att skriva "file * <enter> " i en mapp med lite filer under så kommer du snart inse vad som kommer ut ur programmet

med "file * <enter>"

ge resultat liknande:

file * btrfs-heatmap: directory log: ASCII text logfile: ASCII text mc: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=Ybe2DJgeWmUk_4v5Mri7/ZGnDXEMaRrVCGUWkUGvY/ifTEa8RfMjM3Pnbif9Tw/B5gjyPzgzxUNxGkFWSE_, stripped minio: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=SmVjVlu4WmUIoIq685uo/QhVPqNFcuVIgxQqwCCvY/-IWKI47tpQ58MzZvrtz6/invmMcTATCMIKWVeYihf, stripped nohup.out: ASCII text python-btrfs: directory snap: directory test: directory testfil_libre.docx: Microsoft Word 2007+ unknow$0001: Microsoft Word 2007+ (samma som föregående för att visa att det inte är avhängit med filnamnet för identifikationen)

och med

'file * > logfile < enter>'

får du utskriften i en filen 'logfile' och sedan får du använda de olika textsträngshanterande programmen i Unix/linux för att sortera och möblera om till en form som är lättare är hanterbar och tex. gruppera alla filer som tex är ASCII-filer i en klump, zippade XML-filer (läs office-filer) i en klump senare etc.

Med sort, col, awk, sed, skiva i perl, python och även Bash själv har kompetenta stränghanteringsfunktioner som du kan använda för att filtrera och sortera namnen i filen och mycket av det här går att läsa sig till och med exempel med enkla sökningar google -

Typiska office-filer har lagrat i zip-komprimerad xml-format i vart fall 15 år tillbaka - även MS olika varianter och mycket tack vare Open office mfl. i slutet av 1990-talet som gjorde att man gick ifrån binärformerna av dokumenten (word-97 format tex.) - men då xml kan vara lite pratigt, så blev det när patenten för kompressionsalgoritmen i Zip inte lägre gällde - kutym att komprimera filerna innan de skickades ned på disken.

Med andra ord om du byter en docx-fil till att sluta med zip istället så kan du med filexplorern eller vilken filhanterare som helst som automatiskt kan öppna zipfiler - se inre strukturen av dockumentet i en form av bunt olika xml-filer i ett filträd och andra binära objekt (tex. bilder) i dokumentet - inte helt olikt som HTML-koden för en webbsida - vilket är helt korrekt då HTML är en delmängd av xml. Har du tur kanske även dokumentnamnet finns där eller går att extrahera ut ur lämplig xml-filerna för att sedan kunna döpa tillbaka de anonyma filnamnen till dess riktiga namn igen.

---

Krasst sett - det är du själv som ställt till situationen genom att inte ha en adekvat uppsatt backuprutin eller hantering med spegling/backupkopia på regelbunden basis och nu hamnat i läget som du är i nu - så det är upp till dig själv att hantera alla dina filer och lära dig på vägen de verktyg som behövs för att lägga denna pussel för att få tillbaka så mycket det går med bland annat förslagna ovan nämnda verktyg med 'file' för identifikation av filer så bra det nu går och därefter efter hitta på egna lösningar.

- med andra ord beror det på hur angeläget dina filer är i hur mycket spenderande tid du läger ned och klurande kring detta som kanske behövs för det - och efter detta kanske du är en fena på 'awk' och 'sed'!

Hur eller hur så med detta så framgår det nog ganska klart efter detta att sätta upp en backuprutin av något slag och sedan verifiera att det fungerar rätt, är väl investerad tid i fortsättningen

Permalänk
Medlem

Visst har jag ställt till det, man ska inte göra vissa saker för tidigt på morgonen, de allra flesta viktiga filer har jag i dator nummer två, som är en gammal W2K burk.. Där finns ett skript i .BAT format som kör ner allt viktigt till en server.. Allt viktigt brukar jag kopiera från den här Linuxdatorn på ett USB, flytta över till den... Det är bara det här tiotal filerna jag glömt att ta med mig de senaste versionerna.. De gamla är sen i december.. Jag flyttade till ny plats under september-oktober... Har inte ens kopplat ihop mitt datorsystem jag hade förut, arbetsrummet är ännu rätt rörigt.. Har inte hunnit få ordning, då så många andra saker fått gå före.. Flytta 36mil iväg till en helt ny miljö, helt nytt sätt att bo, ja det tar sin tid.

"File" låter som ett bra program, får titta på det.. Skript i Linux kan jag inte alls skriva .. Den lilla kunskap i C-programmering jag hade, har jag helt glömt bort.. Har inte ens fiber här ute i på vishan, så sitta på nätet i flera timmar är inte möjligt.. Själva original-filnamnen är inte viktiga.. Kan hitta på ett nytt om jag väl kan lyckas hitta rätt zip-arkiv..

Kommer nog i fortsättningen använda .doc filer ännu mera.. Mindre krångel, kan läsa dessa i båda de datorer jag använder..

Går det inte få det programmet du beskriver att läsa i en mapp OCH alla undermappar, för att sen lista det i en textfil? Det är över 3600 mappar! Hur får man i Linux att allt hamnar i en textfil? i DOS miljön satte man ju bara kommando>resultat.txt .. Det är nu ganska länge sen jag jobbade med datorer, har inget vidare koll längre.. Många websidor som beskriver hur man ska göra, är ofta för opedagogiska för en som inte är insatt.. :/

Att jag inte svarar så snabbt i tråden beror på att jag håller på med ett byggprojekt på tomten, behöver passa på medan rätt årstid råder.

Visa signatur

Har jobbat som Serviceingenjör Digital Systems Services som blev uppköpt av Compaq, skruvar nu mest för egna behov.. Ägnar mig fotografi istället..
..Använder ibland när jag skriver lite ovanliga beskrivningar, jag är ordblind så då blire som det blir i texten ibland! :p

Permalänk
Rekordmedlem
Skrivet av vilzen:

Hur får man i Linux att allt hamnar i en textfil? i DOS miljön satte man ju bara kommando>resultat.txt .

Man använder "större än" i Bas/Linux också, tolka tecknet som en pil mot den fil du vill lägga resultatet i.
https://ryanstutorials.net/linuxtutorial/piping.php

Visa signatur

R5 5600G, Asus ROG STRIX X470-F Gaming, WD SN850X 2TB, Seasonic Focus+ Gold 650W, Aerocool Graphite v3, Tittar på en Acer ET430Kbmiippx 43" 4K. Lyssnar på Behringer DCX2496, Truth B3031A, Truth B2092A. Har också oscilloskop, mätmikrofon och colorimeter.

Permalänk
Avstängd

Nästa gång det händer så skynda dig för dom försvinner rätt fort.

lsof | grep mittfilnamn.txt
10214 /home/wuseman/mittfilnamn.txt (deleted)

För att sedan ta pid nummret som finns lagrat i /proc
ls -l /proc/2637/fd/4
/proc/2637/fd/4 -> /home/wuseman/mittfilnamn.txt (deleted)

Ser du den där så kopierar du över den till valri fil så är det klart. Detta funkar långt ifrån alla gånger men är du snabb nog så:
cp /proc/2637/fd/4 ~/mittfilnamn.txt

Använd inte -a eller något tillsammans med copy kommandot för annars kopierar du en trasig genväng/symlink. Är det en drös filer så gör du samma för alla filer i en loop med filnamnen. Kan skriva ihop ett script om du vill men annars använd tidigare råd i tråden.

Permalänk
Medlem

Tack Wuseman!
Det första du skriver kan jag nog inte längre använda, de kring 6-7 filerna jag skulle vilja ha tillbaka ligger i en hög med hundratusentalsfiler, efter att ha kört det där scanningsprogrammet..

Du får gärna visa hur man skriver ett script, jag vet bara hur man gör .BAT filer i dos.. Kan inte alls hur man gör motsvarande sak i Linux..

Ett tidigare råd att använda kommandot "file *" i den mapp där det ligger filer har jag funderat på, grejen är att det är 3674 mappar .. Skriva:
cd recup_dir.1
file *
cd ..
cd recup_dir.2
file *
cd ..

osv. för att styra det i en fil med > ... Måste ju gå att göra det smartare, tar ju en evighet att upprepa samma grej att gå in och upp ur mappar för att identifiera vad som ligger där.. Vet att de filer jag söker är komprimerade, så det står bara gladagubbar/rapakalja i dom utan rätt program.

Visa signatur

Har jobbat som Serviceingenjör Digital Systems Services som blev uppköpt av Compaq, skruvar nu mest för egna behov.. Ägnar mig fotografi istället..
..Använder ibland när jag skriver lite ovanliga beskrivningar, jag är ordblind så då blire som det blir i texten ibland! :p

Permalänk
Medlem

Ställ dig på lämplig ställe i filträdet och sedan prova

'find . -print | file -Nn -f - <enter>'

och bör ge liknande

./.bash_logout: ASCII text
./.bashrc: ASCII text
./.profile: ASCII text
./.cache/motd.legal-displayed: empty
./.cache/mc/Tree: ASCII text
./.cache/mc: directory
./.go/blog/content/gopherchina/image00.jpg: JPEG image data, Exif standard: [TIFF image data, little-endian, direntries=0], baseline, precision 8, 600x356, frames 3
./.go/blog/content/gopherchina/image01.jpg: JPEG image data, Exif standard: [TIFF image data, little-endian, direntries=0], baseline, precision 8, 600x447, frames 3
./.go/blog/content/gopherchina: directory
./.go/blog/content/gopherchina.article: UTF-8 Unicode text

och om du vill ha mot fil

'find . -print | file -Nn -f - > logfile.txt <enter>'

och om du vill se vad som skrivs till filen samtidigt du tittar på så prova med

'find . -print | file -Nn -f - | tee logfile.txt <enter>'

med detta får du en lista på vad det är för typer av filer efter varje filnamn i alla mappar.

kolonet efter gör det bekvämt att linux/unix andra strängverktyg att ta bort det som är efter, att sortera etc. då man ofta kan definiera skiljetecken som argument mellan kolumnerna och tex byta plats på det som är före och efter i kolumner

listan ovan är svår att sortera på dokument-typ och det kan man med:

awk -F $':' ' { t = $1; $1 = $2; $2 = t; print; } ' OFS=$'\t' logfile.txt > logfile_2.txt

byta plats på filnamn och dokument-typ samt ersätta ':' med en tabb-tecken

ASCII text ./snazzer-master/docs/snazzer-send-wrapper.md ASCII text ./snazzer-master/docs/snazzer.md a /usr/bin/env sh script, ASCII text executable ./snazzer-master/tests/fixtures.sh a /usr/bin/env bats script, ASCII text executable ./snazzer-master/tests/snazzer-list.bats a /usr/bin/env bats script, ASCII text executable ./snazzer-master/tests/snazzer-prune.bats a /usr/bin/env bats script, ASCII text executable ./snazzer-master/tests/snazzer.bats OpenSSH RSA public key ./.ssh/authorized_keys PEM RSA private key ./.ssh/id_rsa ASCII text, with very long lines ./.byobu/status ASCII text ./.byobu/statusrc

och så kan skicka logfile_2.txt genom 'sort'

sort logfile_2.txt > sort1.txt och liknar

. . ASCII text ./vm-images/privata_filer_tas_bort/privata_filer_tas_bort/snabb_USB/boot/grub/x86_64-efi/moddep.lst ASCII text ./vm-images/privata_filer_tas_bort/privata_filer_tas_bort/snabb_USB/readme.txt ASCII text ./vm-images/privata_filer_tas_bort/privata_filer_tas_bort/snabb_USB/syslinux/isolinux.old ASCII text ./vm-images/privata_filer_tas_bort/privata_filer_tas_bort/USB_sticka_64GB/vipec/CHANGES ASCII text, with CRLF, LF line terminators ./src/john/src/ztex/fpga-bcrypt/pkt_comm/outpkt_bcrypt.v ASCII text, with CRLF, LF line terminators ./src/john/src/ztex/fpga-bcrypt/ztex_inouttraffic/clocks.ucf ASCII text, with CRLF, LF line terminators ./src/john/src/ztex/fpga-descrypt/ztex_inouttraffic/clocks.ucf ASCII text, with CRLF, LF line terminators ./src/john/src/ztex/fpga-descrypt/ztex_inouttraffic/clocks.v . .

(code-block då tabb försvinner och blir ett mellanslag när det visas i inlägget och det blir otydligt)

sedan kan man med editor öppna filen, klippa ut det man inte vill ha, spara i ny filnamn sort_1_edit.txt

sedan ta bort allt före tabb-tecknet med:

awk -F $'\t' '{print $2}' sort_1_edit.txt > filenamn.txt

som ger:
.
.
./vm-images/privata_filer_tas_bort/privata_filer_tas_bort/snabb_USB/boot/grub/x86_64-efi/moddep.lst
./vm-images/privata_filer_tas_bort/privata_filer_tas_bort/snabb_USB/readme.txt
./vm-images/privata_filer_tas_bort/privata_filer_tas_bort/snabb_USB/syslinux/isolinux.old
./vm-images/privata_filer_tas_bort/privata_filer_tas_bort/USB_sticka_64GB/vipec/CHANGES
./src/john/src/ztex/fpga-bcrypt/pkt_comm/outpkt_bcrypt.v
./src/john/src/ztex/fpga-bcrypt/ztex_inouttraffic/clocks.ucf
./src/john/src/ztex/fpga-descrypt/ztex_inouttraffic/clocks.ucf
./src/john/src/ztex/fpga-descrypt/ztex_inouttraffic/clocks.v
.
.

[edit: man kan också skippa flera steg ovan och tex. sortera på vald kolumn med 'sort

mao. allt ovanstående kan ersättas med

find . -type f -size +$((10*1024*1024))c -size -$((12*1024*1024))c -print | file -Nn -f - | sort -t$':' -k2 > sort_1.txt ; kan ta tid...

editera sort_1.txt med texteditor och klipp bort oönskade delar, spara

awk -F $':' '{print $1}' sort_1.txt > filnamn.txt ;för att rensa bort kolonet och all text efter kolonet på varje rad

Detta för filer i filträdet som är minium 10 MB och max 12MB stora

kan också extrahera ut filnamnen för en viss dokumenttyp direkt med grep, klippt och klart.

som

find . -type f -size +$((10*1024*1024))c -size -$((12*1024*1024))c -print | file -Nn -f - | grep --line-buffered "ASCII text, with CRLF line terminators" | awk -F $':' '{print $1}' > filenamn.txt

för filer mella 10 och 12 MByte storlek om man vet exakt vad det är för dokumenttyp man vill få fatt på

]

och resultatet kan använda som fillista för att tex. kopiera ut filer till annan lagring

xargs -a filenamn.txt cp -t new_folder

vill man få med filträdet för selekterade filerna i listan och det är namnkonflikt för att de heter samma sak i de olika mapparna om de läggs i samma målmapp

så kan man använda 'tar' för det i en shellscript

"
tmpfile=/tmp/myfile.tar
files="/some/folder/file1.txt /some/other/folder/file2.txt"
targetfolder=/home/you/somefolder

tar --file="$tmpfile" "$files"​
tar --extract --file="$tmpfile" --directory="$targetfolder"
"

tar skapar hela filträdet som behövs för att lägga filerna på rätt ställe i trädet och att göra det med awk och andra sätt är mycket besvärligare att få till rätt.

och därefter en och en undersöka filerna om det finns eftersökta innehållet i dessa och samtidigt vet att alla filer i listan är tex. klassade som wordfiler.

på så sätt så kan man gruppera och tex man får alla wordfiler i en grupp, txt-filer i annan etc.

---

Det finns antal verktyg som sort, cut, ln, tc, wc, tail, head, colrm, split mfl. man kan bolla med för att klippa, klistra, möblera om och sätta ihop listorna så att det passar nästa steg i processningen.

och vet man inte hur det fungera så får man först läsa med 'man find' vad som gäller för tex. kommandot 'find' - eventuellt med googel-sökning hitta mer välfyllda beskrivningar och exempel.

Det kan vidare vara god ide att söka på awk, sed, men även python mfl. scriptspråk och det finns många exempel att hitta

tex. att söka hur man skriver ut bara en kolumn i en text med många kolumner så hamnade man snabbt på sida som https://unix.stackexchange.com/questions/285774/cut-column-2-... där det finns typ 7 olika sätt att lösa samma problem.

andra är tex. https://linuxhint.com/20_awk_examples/

vidare

https://developer.ibm.com/technologies/systems/articles/au-un...

där det till det mesta avhandlar unix/linux standard textverktyg för användning i konsol och script
.
.
.

- det finns massor av sådana exempel och kodsnippets för att lösa olika typer av problem som inte är lätta att formulera så att det passa i en GUI - gäller bara att man hittar vägarna in - det är också förklaringar varför riktiga sysadmin ogillar GUI då det låser in till hur den som skapade GUI tänkte en gång i tiden och passar inte riktigt för problemet man vill lösa för den här dagen.

tex harva loggfiler är ofta en sysadm vardag och för att inte drunkna så måste man lära sig konsten att filtrera och då har man awk, sed mfl. i olika script som man bygger upp över tiden.

Permalänk
Avstängd

@vilzen:

#!/bin/bash

read -p "Filer att hitta (använd space mellan varje filtyp): " file_type
read -p "Mapp att söka i: " path_name

file_type2="$(echo $file_type|sed 's/ /\\|./g' )"

find . -type f -exec file {} \; | grep -i "${file_type2}" | tee $HOME/find_files.txt

------

1. Spara texten ovanför i en fil och döp den till find_files.sh
2. chmod +x find_files.sh
3. bash find_files.sh
4. Filer att hitta: png gif
5. Mapp att söka i: /home/vilzen
6. tee $HOME/find_files, den kommer skriva loggen till /home/vilzen/find_files ..

Den kommer nu söka efter alla png och gif filer i /home/vilzen

Du kan använda getopts också men det är en högre nivå om du är i början på din tid i linux, det skulle kunna vara te.x

bash find_files.sh -f png gif jpg -p /home/vilzen

Detta är en början på hur det kan se ut. Du kan använda cut -d: -f1 om du bara vill namen på filerna, men är har alla filextensions så finns de snabbare sätt att hitta dom men eftersom du fråga om file specifikt så fick du ett exempel att bygga vidare på

wuseman@thinkpad ~ $ bash find_files.sh
./downloads/firefox/browser/chrome/icons/default/default48.png: PNG image data, 48 x 48, 8-bit/color RGBA, non-interlaced
./downloads/firefox/Throbber-small.gif: GIF image data, version 89a, 16 x 16

Altenativt är att använda en for loop just för det där ändamålet, inget man sitter och gör manuellt direkt så det är kanske bra att lära sig lite basic loops. Använd tee istället för > om du vill se allt som händer samtidigt. Annars får du lära dig stdout och stderr på en annan nivå för att hantera det snyggt och det är inte direkt jätte enkelt om man är nybörjare då blir det ganska svårt .. Det är inte jätte lätt att veta vad >, >>, 1>, 2> 1&2>, <<< - kan vara rätt farligt om man inte vet exakt vad man gör i andra lägen så att säga.

te.x ... greppa något från stderr går inte bara så enkelt, exempel på något som kommer senare:
xargs --show-limits -s 1 |grep -i "parallelism" = Funkar inte
xargs --show-limits -s 1 2>&1|grep -i "parallelism" = Måste användas, också samma med netcat vid en portscan osv

nc -v -z 127.0.0.1 22 |grep open > test = funkar inte
nc -v -z 127.0.0.1 22 2>&1 |grep open > test = funkar
nc -v -z 127.0.0.1 22 | grep open | tee logfile = funkar

Simpel loop, sällan jag rekomenderar echo före printf och det är sällan jag använder echo själv men använde det i mitt lilla exempel script för att visa enklare utan printf i just det fallet ovanför, men för att göra 3000 nummer på rad, en och en:

Simpel loop:
for numbers in {1..3674}; do printf "%s\n" "$numbers"; done

Skapa en loop per core, parallelt:
parallel -j2 echo ::: 1 2 3 4 ::: 1 2 3 4
1 1
1 2
1 3
1 4
2 1
2 2
2 3
2 4
3 1
3 2
3 3
3 4
4 1
4 2
4 3
4 4

För att snabba upp grep för att söka efter text inuti filer använd, the silver searcher om du har multicore:
https://github.com/ggreer/the_silver_searcher

Se:

ack test_blah ~/code/ 104.66s user 4.82s system 99% cpu 1:50.03 total

ag test_blah ~/code/ 4.67s user 4.58s system 286% cpu 3.227 total

enbart grep vill jag inte ens tänka på vad de skulle ta.

För att maxxa find så du inte fastnar på single core då de tar evigheter om man ska gå igenom så många mappar så är altenativet parallel här med:
find . -type f | parallel -k -j150% -n 1000 -m grep -H -n STRING {}

Permalänk
Medlem

Får titta närmare på det här en dag när vädret är riktigt illa, tar ett tag för mig att sätta sig in i.. Som sagt, även om jag använt Linux ett tag så är det nästan uteslutande i de grafiska gränsnitten..

Visa signatur

Har jobbat som Serviceingenjör Digital Systems Services som blev uppköpt av Compaq, skruvar nu mest för egna behov.. Ägnar mig fotografi istället..
..Använder ibland när jag skriver lite ovanliga beskrivningar, jag är ordblind så då blire som det blir i texten ibland! :p

Permalänk
Avstängd

@vilzen: Har varit utvecklare sen 2008 och jag lär mig fortfarande saker varje dag. Jag har använt cli till allt och gui för att underlätta, med detta vill jag säga att det är helt orelevant om man använt linux eller inte förr då det är ganska orelevant för ingen kan veta allt oavsett om man är GUI eller en CLI user om man nu vill kategorisera det. Du behöver inte försvara dig att du inte kan för du använt linux men inte cli utan gui.

Hoppas problemet löser det för nästa person som eventuellt hittar hit och för dig om det blir aktuellt igen.

Permalänk
Medlem

Som det är skrivet i exemplen ovan är det inte så svårt - är man osäker så kan man prova på en dator eller i en VM med en installerad linux med 'ofarlig' data eller via uppstartad på en live-cd skiva av en stor distrubition.

Det handlar mera om att våga öppna terminalfönstret och börja knappa då inget av ovanstående är speciellt farligt eller destruktivt - det som möjligen kan ha missats är att skriva 'sudo' före kommandona om man inte redan gjort sig själv till root innan och stöter på rättighetsbekymmer.

Jag slår nästa vad om att du går igenom exemplen/förslagen ovan mycket snabbare än vad det tog i tid för oss som bidrog i att skriva våra inlägg (jag åtm. provkörde i en putty mot en linuxserver för att får kommandona rätt (exklusive felstavning som kan ha smugits in).

Jag önskade att jag hade den kunskapen eller kunde hitta liknande inlägg när jag för ett decenium stod med en 2TB-disk med havererad NTFS (skadad $MFT och $MFTmirr) och hade halv miljon anonyma $xxxxxx filer i en och samma direktory när olika diskräddningsprogram (även betal) hade gjort vad de kunnat.

Har man unix/linux-shell erfarenhet så sticker jag inte understol att livet är besvärligt i en windows powershell och svårt att få något gjort eftersom 'inget fungerar' och det blir att surfa och googla och skriva långa haranger bara för en så enkel sak som att skapa en SHA1-summa på en bit text - det är imponerande omständligt att göra en ekvivalent till en 'echo -n "textsträng" | sha1sum' för att just få ut hash-summan av "teststräng" i en powershell-terminal - MS har helt annat tänk i hur man skall hantera saker i sin powershell-miljö och det går verkligen mothårs om man tar med sig 'Unixtänk' där

Permalänk
Avstängd

@xxargs: Om det är en ntfs disk så finns ntfsundelete: https://linux.die.net/man/8/ntfsundelete

sudo ntfsundelete /dev/sdaX

Annars är väl testdisk att rekommendera eller ggdiskrescue för en hel disk.

Permalänk
Medlem

Fungerar den om första klustret i $MFT och $MFTmirr är sönderskriven med slump? - i så fall blir jag imponerad!.

När jag slogs med detta >=10 år sedan så klarade inte ens respekterad diskräddningsprogramvara som (betal) R-studio att få fram något med högre intelligens än 'datascrape' förutom enstaka filträdsgrenar från nivå 4 och nedåt i filträdet när den hittade datablock som kunde identifieras som en kluster av $MFT:s filkropp.

Det är en lång historia och jag tvingade mig själv att gräva i NTFS inre struktur för att se vad fasen som hände och jag la mycket tid på att rädda så mycket det gick och konstaterade att de flesta 'data scraped' filer man fick ut diskräddningsprogrammen var rätt 'marmorerat' med delar av andra filer i sin filkropp. Gillar inte alls NTFS efter detta och att det är så skört, nästan som gjort för att gå sönder hårt om man vet var man skall sikta någonstans.

I grunden var problemet med USB/SATA-adapter hos en viss stor tillverkares externa diskar i samband med avmontering och stängning av enheten ifråga som gjorde att det skrevs skräp på ovan sagda sektorer typ 1 ggr per 10-20 utloggningar, hade man vetat det så hade det varit bättre att rycka USB-sladden och sedan låta windows reparera och kolla filsystemet nästa gång - varje gång...

Så kör windows idag att windows inte stänger NTFS-filsystemet när man stänger av datorn på normalt sätt utan är i ett slags sleep-läge. Skall man ha den stängd på riktigt (för att tex Linux skall kunna skriva i filsystemet då den går i Read only om den råkade vara 'dirty') så måste man hålla vänster skiftknapp nere när man klickar på avstängning. - det kanske finns en orsak till det och jag inte är den enda som råkat på detta...

Permalänk
Medlem
Skrivet av wuseman:

@vilzen: Har varit utvecklare sen 2008 och jag lär mig fortfarande saker varje dag. Jag har använt cli till allt och gui för att underlätta, med detta vill jag säga att det är helt orelevant om man använt linux eller inte förr då det är ganska orelevant för ingen kan veta allt oavsett om man är GUI eller en CLI user om man nu vill kategorisera det. Du behöver inte försvara dig att du inte kan för du använt linux men inte cli utan gui.

Hoppas problemet löser det för nästa person som eventuellt hittar hit och för dig om det blir aktuellt igen.

Ja, jag hoppas det löser sig med.. Det är inte så mycket försvarande, behövde bara förtydliga att jag inte är speciellt avancerad användare.. Har pillat lite i terminalen, men då endast enklare kommandon.. Det är mer än 10 år sen jag jobbade professionellt med data, har glömt mycket.. Har till o med i en utbildning läst C++, kommer inte ihåg ett dugg av detta.. Ska erkänna att jag börjat förlora hoppet att kunna lösa det här.. :'( Sitta i en vecka (eller mer) för att försöka förstå hur jag ska göra, har inte tiden längre.. Det är inte ens ett år sedan jag flyttade hit, ännu mycket som borde göras och även liksom få ordning på mitt arbetsrum.

Har till o med gått i tankarna om det på ett enkelt sätt gick att söka upp alla filer såsom .jpg , .xml , .dll och anant skräp som programemt hittat och sortera in det i andra mappar så de är ur vägen.. Liksom göra höstacken mindre..

Det är bra den här tråden få fortsätta, kanske kan det hjälpa någon annan..

Visa signatur

Har jobbat som Serviceingenjör Digital Systems Services som blev uppköpt av Compaq, skruvar nu mest för egna behov.. Ägnar mig fotografi istället..
..Använder ibland när jag skriver lite ovanliga beskrivningar, jag är ordblind så då blire som det blir i texten ibland! :p

Permalänk
Medlem

Det handlar om att våga lite - ingen är bra på saker som man nästan aldrig gör, eller aldrig provat på innan, skall man bli skicklig och snabb så måste det tränas och användas hela tiden.

ovanstående bidrag är ju delvis bitar av verktyg i hur du skall gruppera tex. jpeg-filer i en grupp, xml i en annan grupp även om diskräddningsprogrammet med sin data-scrape har bara hittat en fil som döpts till $003a0032 och inget mer som identifierar.

har man fått listan med tex det som klassas som jpg-filer i en textfil enligt tidigare script-förslag - så kan man mata denna fil till 'tar' som nyper bara just de filer som finns i listan och och lägger det i en tarboll - på annan plats kan du sedan packa upp tarbollen igen och återskapa filträdet med endast de filer som tidigare klassades som jpg med 'file' och du slipper resten av filerna med annan innehåll.

sedan kan man fortsätta med de andra filtyperna med varsin tarboll och förstås skriva vidare i listan att kunna göra dessa upprepande med olika fillistor med olika dokumenttyper och alla placeras med sina filträn med bara dokumenttypen endast i filträdet.

---

Gissar att du är fortfarande är skakad och grämer dig över förlusten och hur fort det gick och har bara liten hopp och ingen lust att gräva i detta för att få sina farhågor med total förlust besannade - sådant påverkar ambitionsnivå och resultatet negativt.

Det kanske behöver ligga i några år innan du har orken att attackera det hela seriöst och med deduktiv tankesätt - vad du än gör, gör dig inte av med dina diskimages - jag gjorde nämligen det när jag inte tyckte att det gick att få ut mer vettigt (diskplats var också mycket dyrare än idag) - idag önskade jag att jag hade dessa kvar för att prova i tråden ovanstående script i olika former och se om man kunde få ut mer vettigt och framförallt att kunna glesa bort all skräp som döljer guldkornen - är det uppemot miljonen anonyma filer så är det inte kul att navigera och många av dessa är exekverbara filer i tex windows, gamla 'raderade' filer som nu dyker upp som filer med 'marmorerad' filkropp etc.

Permalänk
Medlem

Nej, kommer inte radera.. Om jag får platsbrist blir det till att flytta till en disk som inte ens behöver vara monterad i nån dator.. Har lite smått med enbart sökverktyget börjat flytta filer med .gz till en egen mapp ( Som verkar kunna innehålla .odt-dokument ) ..Försöker därmed kanske börja öppna dessa en o en , vilka är i rätt storlek.. Hopplöst manuellt jobb, men upplever inte jag kan åstadkomma så mycket smartare lösningar.. Är helt enkelt inte tillräckligt duktig på detta, tvivlar att jag dessutom kommer bli det..

Kanske inte är så skärrad, mest förbannad att de är borta.. Det är en 3-8 filer som jag saknar, mycket annat som försvann var oviktigt krafs jag sparat på..

Visa signatur

Har jobbat som Serviceingenjör Digital Systems Services som blev uppköpt av Compaq, skruvar nu mest för egna behov.. Ägnar mig fotografi istället..
..Använder ibland när jag skriver lite ovanliga beskrivningar, jag är ordblind så då blire som det blir i texten ibland! :p