Skip to content
/ lsr Public

recursive file listing with name size date sha256

License

Notifications You must be signed in to change notification settings

n2vi/lsr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

lsr

Command lsr prints a recursive listing of the current directory, including quoted filename, size, modtime, and sha256(contents).

Main output goes to local file ".lsr", which is created 0600 if it doesn't exist. Diagnostic output goes to Stdout as lines of the form: status filename where status is one of

  • N new
  • D deleted
  • M modified (size or hash changed, and mtime advanced)
  • R reverted (size or hash changed, and mtime went backwards)
  • T touched (mtime changed but hash did not)
  • C corrupted (size or hash changed but mtime did not) or silent for files that are same as before.

This is not a security tool. Anyone that can maliciously change a file can just as well change .lsr. But it is a good way to review what you've worked on in the recent past or catch unintended changes.

Lsr is a minor variation of a command I've been using since the early '80s to organize backups, mirror projects, and check for filesystem corruption. Its use in administering netlib is described in ACM TOMS (1995) 21:1:89-97. I created it at Bell Labs when the Interdata hardware (first Unix port) was silently corrupting files. Given recent stories about declining reliability of consumer SSD, it may be prudent for a few people like me to resume such checking.

Lsr can be used to semi-automate sync of filetrees between several machines in a way that catches accidents before they propagate. But it is not a replacement for finer grain merge control as with git, nor is it particularly suitable for database files. Lsr ignores permission bits, so don't use it for a mix of public and secret files.

About

recursive file listing with name size date sha256

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages