Command to Search for Filenames Exceeding 143 Characters?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}
So some background first: I am attempting to convert a non-encrypted shared folder into an encrypted one on my Synology NAS and am seeing this error:
So I would like to locate the offending files so that I may rename them. I have come up with the following grep
command: grep -rle '[^ ]{143,}' *
but it outputs all files with paths greater than 143 characters:
#recycle/Music/TO SORT/music/H/Hooligans----Heroes of Hifi/Metalcore Promotions - Heroes of Hifi - 03 Sly Like a Megan Fox.mp3
...
What I would like is for grep to split on /
and then perform its search. Any idea on an efficient command to go about this (directory easily contains hundreds of thousands of files)?
command-line filenames synology
add a comment
|
So some background first: I am attempting to convert a non-encrypted shared folder into an encrypted one on my Synology NAS and am seeing this error:
So I would like to locate the offending files so that I may rename them. I have come up with the following grep
command: grep -rle '[^ ]{143,}' *
but it outputs all files with paths greater than 143 characters:
#recycle/Music/TO SORT/music/H/Hooligans----Heroes of Hifi/Metalcore Promotions - Heroes of Hifi - 03 Sly Like a Megan Fox.mp3
...
What I would like is for grep to split on /
and then perform its search. Any idea on an efficient command to go about this (directory easily contains hundreds of thousands of files)?
command-line filenames synology
For a collection of CJK p{} classes, see this stack overflow answer: stackoverflow.com/a/48673340
– Andrew Domaszek
May 26 at 3:23
add a comment
|
So some background first: I am attempting to convert a non-encrypted shared folder into an encrypted one on my Synology NAS and am seeing this error:
So I would like to locate the offending files so that I may rename them. I have come up with the following grep
command: grep -rle '[^ ]{143,}' *
but it outputs all files with paths greater than 143 characters:
#recycle/Music/TO SORT/music/H/Hooligans----Heroes of Hifi/Metalcore Promotions - Heroes of Hifi - 03 Sly Like a Megan Fox.mp3
...
What I would like is for grep to split on /
and then perform its search. Any idea on an efficient command to go about this (directory easily contains hundreds of thousands of files)?
command-line filenames synology
So some background first: I am attempting to convert a non-encrypted shared folder into an encrypted one on my Synology NAS and am seeing this error:
So I would like to locate the offending files so that I may rename them. I have come up with the following grep
command: grep -rle '[^ ]{143,}' *
but it outputs all files with paths greater than 143 characters:
#recycle/Music/TO SORT/music/H/Hooligans----Heroes of Hifi/Metalcore Promotions - Heroes of Hifi - 03 Sly Like a Megan Fox.mp3
...
What I would like is for grep to split on /
and then perform its search. Any idea on an efficient command to go about this (directory easily contains hundreds of thousands of files)?
command-line filenames synology
command-line filenames synology
edited Jun 21 at 20:04
Jeff Schaller♦
49.7k11 gold badges73 silver badges165 bronze badges
49.7k11 gold badges73 silver badges165 bronze badges
asked May 26 at 1:47
StunnerStunner
1336 bronze badges
1336 bronze badges
For a collection of CJK p{} classes, see this stack overflow answer: stackoverflow.com/a/48673340
– Andrew Domaszek
May 26 at 3:23
add a comment
|
For a collection of CJK p{} classes, see this stack overflow answer: stackoverflow.com/a/48673340
– Andrew Domaszek
May 26 at 3:23
For a collection of CJK p{} classes, see this stack overflow answer: stackoverflow.com/a/48673340
– Andrew Domaszek
May 26 at 3:23
For a collection of CJK p{} classes, see this stack overflow answer: stackoverflow.com/a/48673340
– Andrew Domaszek
May 26 at 3:23
add a comment
|
3 Answers
3
active
oldest
votes
Try:
find /your/path | grep -E '[^/]{143,}$'
add a comment
|
Although the GNU ‘findutils-default’ regular expression syntax doesn't provide a {n,m}
interval quantifier, you can use a -regex
test in GNU find
if you select a different regextype
, for example:
find . -regextype posix-extended -regex '.*/[^/]{143,}$'
or
find . -regextype egrep -regex '.*/[^/]{143,}$'
or
find . -regextype posix-basic -regex '.*/[^/]{143,}$'
etc. There may be other regextypes
that support {n,m}
intervals, either with or without escaping.
Compared to piping the results of find
to a separate grep
command, this will match across newlines (i.e. the find
regex flavors differ from their namesakes in that .
matches the newline character by default).
add a comment
|
If you've already got a locate db, it is very fast at this.
locate --regex '.*/[^/]{143,}$'
add a comment
|
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/4.0/"u003ecc by-sa 4.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f521096%2fcommand-to-search-for-filenames-exceeding-143-characters%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
Try:
find /your/path | grep -E '[^/]{143,}$'
add a comment
|
Try:
find /your/path | grep -E '[^/]{143,}$'
add a comment
|
Try:
find /your/path | grep -E '[^/]{143,}$'
Try:
find /your/path | grep -E '[^/]{143,}$'
answered May 26 at 2:09
Jim L.Jim L.
2,1531 gold badge4 silver badges12 bronze badges
2,1531 gold badge4 silver badges12 bronze badges
add a comment
|
add a comment
|
Although the GNU ‘findutils-default’ regular expression syntax doesn't provide a {n,m}
interval quantifier, you can use a -regex
test in GNU find
if you select a different regextype
, for example:
find . -regextype posix-extended -regex '.*/[^/]{143,}$'
or
find . -regextype egrep -regex '.*/[^/]{143,}$'
or
find . -regextype posix-basic -regex '.*/[^/]{143,}$'
etc. There may be other regextypes
that support {n,m}
intervals, either with or without escaping.
Compared to piping the results of find
to a separate grep
command, this will match across newlines (i.e. the find
regex flavors differ from their namesakes in that .
matches the newline character by default).
add a comment
|
Although the GNU ‘findutils-default’ regular expression syntax doesn't provide a {n,m}
interval quantifier, you can use a -regex
test in GNU find
if you select a different regextype
, for example:
find . -regextype posix-extended -regex '.*/[^/]{143,}$'
or
find . -regextype egrep -regex '.*/[^/]{143,}$'
or
find . -regextype posix-basic -regex '.*/[^/]{143,}$'
etc. There may be other regextypes
that support {n,m}
intervals, either with or without escaping.
Compared to piping the results of find
to a separate grep
command, this will match across newlines (i.e. the find
regex flavors differ from their namesakes in that .
matches the newline character by default).
add a comment
|
Although the GNU ‘findutils-default’ regular expression syntax doesn't provide a {n,m}
interval quantifier, you can use a -regex
test in GNU find
if you select a different regextype
, for example:
find . -regextype posix-extended -regex '.*/[^/]{143,}$'
or
find . -regextype egrep -regex '.*/[^/]{143,}$'
or
find . -regextype posix-basic -regex '.*/[^/]{143,}$'
etc. There may be other regextypes
that support {n,m}
intervals, either with or without escaping.
Compared to piping the results of find
to a separate grep
command, this will match across newlines (i.e. the find
regex flavors differ from their namesakes in that .
matches the newline character by default).
Although the GNU ‘findutils-default’ regular expression syntax doesn't provide a {n,m}
interval quantifier, you can use a -regex
test in GNU find
if you select a different regextype
, for example:
find . -regextype posix-extended -regex '.*/[^/]{143,}$'
or
find . -regextype egrep -regex '.*/[^/]{143,}$'
or
find . -regextype posix-basic -regex '.*/[^/]{143,}$'
etc. There may be other regextypes
that support {n,m}
intervals, either with or without escaping.
Compared to piping the results of find
to a separate grep
command, this will match across newlines (i.e. the find
regex flavors differ from their namesakes in that .
matches the newline character by default).
edited May 26 at 21:42
answered May 26 at 2:41
steeldriversteeldriver
43.3k5 gold badges57 silver badges96 bronze badges
43.3k5 gold badges57 silver badges96 bronze badges
add a comment
|
add a comment
|
If you've already got a locate db, it is very fast at this.
locate --regex '.*/[^/]{143,}$'
add a comment
|
If you've already got a locate db, it is very fast at this.
locate --regex '.*/[^/]{143,}$'
add a comment
|
If you've already got a locate db, it is very fast at this.
locate --regex '.*/[^/]{143,}$'
If you've already got a locate db, it is very fast at this.
locate --regex '.*/[^/]{143,}$'
answered May 26 at 3:16
Andrew DomaszekAndrew Domaszek
2301 silver badge5 bronze badges
2301 silver badge5 bronze badges
add a comment
|
add a comment
|
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f521096%2fcommand-to-search-for-filenames-exceeding-143-characters%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
For a collection of CJK p{} classes, see this stack overflow answer: stackoverflow.com/a/48673340
– Andrew Domaszek
May 26 at 3:23