De SCP-fout oplossen: Geen normaal bestand

De foutmelding "scp not a regular file" geeft aan dat u probeert een bestand te kopiëren met de `SCP`-opdracht, maar dat de opgegeven bron of bestemming geen regulier bestand is. De `SCP`-opdracht wordt veel gebruikt om bestanden veilig over te dragen tussen hosts via SSH-verbindingen (Secure Shell). Deze opdracht vereist dat zowel de bron als de bestemming voor de bestandsoverdracht worden opgegeven. De fout treedt daarom meestal op vanwege een onjuist bestandspad.De SCP-fout oplossen: Geen normaal bestand

De foutmelding "scp not a regular file" kan op verschillende besturingssystemen voorkomen, waaronder Unix-achtige systemen zoals Linux, macOS en BSD. Het kan ook voorkomen op Windows-systemen waar de SCP-opdracht is geïnstalleerd, meestal als onderdeel van software van derden zoals PuTTY of Cygwin.

Om u te helpen deze fout op te lossen, hebben we een handleiding voor probleemoplossing opgesteld die u gedetailleerd bij dit probleem zal helpen.

1. Syntactische problemen

Unix en Linux staan ​​bekend om hun strikte naleving van goed gedefinieerde syntactische regels en standaarden die van toepassing zijn op commando's, shellscripts en configuratiebestanden. Het volgen van deze vastgestelde syntaxis is cruciaal voor een correcte uitvoering en het gewenste gedrag in deze besturingssystemen.

Als er dus een syntaxfout wordt gedetecteerd, waarschuwt het systeem de gebruiker automatisch; in dit geval is de foutmelding "scp: geen regulier bestand". Er zijn een aantal zaken waarmee rekening moet worden gehouden bij het kopiëren van een bestand.

1.1 Afstanden controleren

Het controleren op spaties in bestandsnamen of mapnamen is een cruciale taak in Unix/Linux. Dit zorgt ervoor dat er geen inspringingen of achtervoegsels zijn die problemen kunnen veroorzaken bij het werken met commando's of scripts.

Stel bijvoorbeeld dat u een bestand met de naam 'my_file.txt' in de map '/home/user' hebt staan. Om te controleren of de bestandsnaam spaties bevat, kunt u de volgende opdracht gebruiken:

ls -Q/home/user

De optie `-Q` wordt gebruikt om bestandsnamen en mappen tussen aanhalingstekens weer te geven. Als er spaties in de bestandsnaam voorkomen, worden deze duidelijk tussen aanhalingstekens geplaatst wanneer deze opdracht wordt uitgevoerd.

Als de uitvoer bijvoorbeeld een bepaald resultaat laat zien, moeten we de nodige actie ondernemen.

"mijnbestand.txt"

Dit geeft aan dat er een spatie in de bestandsnaam staat. In dergelijke gevallen is het raadzaam om spaties in bestandsnamen te behandelen met speciale tekens of de naam tussen aanhalingstekens te plaatsen bij het werken met commando's of scripts.

Om mogelijke problemen met spaties in bestands- of mapnamen te voorkomen, is het over het algemeen raadzaam om bestandsnamen zonder spaties te gebruiken.

1.2 Twee verticale punten ontbreken of zijn extra

Het SCP-commando vereist het gebruik van een dubbele punt om de externe server en bestandspaden op te geven. Bijvoorbeeld, het gebruik van een onjuist formaat zoals 'scp gebruiker@host bestandspad' in plaats van 'scp gebruiker@host:bestandspad' Dit kan een fout veroorzaken. Om de foutmelding "scp is geen normaal bestand" te voorkomen, moet u zich daarom aan de formaatbeperkingen houden.

1.3 Het mengen van de bron en de bestemming

Bij gebruik van het SCP-commando kan het verwisselen van de bron- en bestemmingspaden leiden tot fouten of onverwacht gedrag. Het aanhouden van de juiste volgorde is cruciaal voor een succesvolle bestandsoverdracht.

Ter verduidelijking: het SCP-commando volgt de formule:

scp .

Als u per ongeluk de bron- en bestemmingspaden verwisselt, kan dit ertoe leiden dat bestanden in de verkeerde richting worden gekopieerd of dat er een foutmelding "scp is geen normaal bestand" verschijnt als de bestemming ongeldig is.

Stel bijvoorbeeld dat we een bestand met de naam "file.txt" van onze lokale computer naar een externe server willen kopiëren:

Correct: scp file.txt user@remote:/path/to/destination
Onjuist: scp user@remote:/path/to/destination file.txt

Bij onjuist gebruik wordt geprobeerd het externe bestand met de naam "file.txt" naar de lokale machine te kopiëren, wat kan leiden tot ongewenste resultaten of fouten. Om een ​​vlotte bestandsoverdracht te garanderen, dient u bij gebruik van de SCP-opdracht altijd de juiste volgorde van de bron- en bestemmingspaden te controleren en te behouden.

2. De optie “-r” gebruiken

De reden dat u deze foutmelding krijgt, is waarschijnlijk dat u een map kopieert zonder het besturingssysteem te laten weten dat u een map kopieert.

Standaard behandelt SCP bestanden als gewone bestanden, dus de optie -r moet worden toegevoegd bij het kopiëren van een map. De foutmelding "scp is not normal" treedt op wanneer een gebruiker een map probeert te kopiëren zonder de optie -r hiervoor te specificeren.

Als je een complete map wilt kopiëren, inclusief alle submappen en bestanden, gebruik je de optie "-r". Zonder de optie "-r" kopieert SCP alleen afzonderlijke bestanden, niet mappen.

Hier volgt een voorbeeld van het gebruik van scp met de optie "-r":

scp -r /pad/naar/bronmap gebruiker@remote:/pad/naar/bestemmingsmap

Hierdoor worden de inhoud van de map "source_directory" en alle submappen daarvan herhaaldelijk gekopieerd naar de map "destination_directory" op de externe server.

 

Reacties zijn gesloten.