3 ms·
Something I've always wanted from my shell history is to be able to record relative filepaths as their absolute equivalent in the history, is that supported in
by nathanwh 4y ago
Something I've always wanted from my shell history is to be able to record relative filepaths as their absolute equivalent in the history, is that supported in atuin?. If you do a lot of data munging on the CLI, you end up with a lot of commands like `jq 'complicated_selector' data.json`, which if I want to remember the selector is good, but if I want to remember which data I ran it on is not so good. I could do it with better filenames but that would involve thinking ahead. I also run into this a lot trying to remember exactly which local file has been uploaded to s3 by looking at shell history.
- ryanianian 4y agoFile paths are just strings from the shell, though, and each tool can handle relative paths differently. So `./` can mean relative to your shell's cwd or the program could interpret it as relative to something else. Moreover something like `go test -v ./...` is...ambiguous. I think what would be more useful is to record `env` or some similar context along with the time and command. That would probably get weird pretty fast, though. Maybe just a thing that could insert some useful bookmarking/state into the history record on-demand? `history-set-checkpoint` or something would save your pwd and local vars or something.
- conradludgate 4y agoTechnically. For every command you run, atuin stores the current directory, the time, the duration, the exit code, a session id and your user/host name. With the current directory you should be able to get the absolute path from your relative paths
- asdff 4y agoIssues like this are why I write everything into scripts and pipelines, even the munging. This way everything is documented: the environment, the input, the output, the log file, what ran, and longform comments with why I was doing it.
- darkwater 4y agoGood choice but that for me breaks the "carpe Diem" part of the inspiration that can go away in a whim, that it's what I have when I'm writing (complex) one liners in the shell. Or maybe I'm just lazy.
- asdff 4y agoJust have two windows open, your console and your editor. If you ran a command that worked just copy and paste it into the editor. There's your script if you didn't want to get fancy. If you copied your initial cd command or whatever you'd know what the relative paths were referring too as well (although this issue is why I have gotten into the habit of using a path variable instead of relative or anything hardcoded).
- reddit_clone 4y agoI sometime use a #a-text-comment at the end of long/complex command line incantation. Easy to find using fzf at a later date. Also can provide you with a quick context.
- sodapopcan 4y agoSo scrappy and simple-I love it!
- heleninboodler 4y agoThis is commonly referred to as a 'bashtag' Or at least I hope it is. :)
- baq 4y agoit works in other shells, so 'shetag'. but that isn't sexy somehow. we'll have to settle on 'shag'.